Эмулятор мп системы на базе мп кр580вм80 как работать
Перейти к содержимому

Эмулятор мп системы на базе мп кр580вм80 как работать

  • автор:

Лабораторная работа № 3. Исследование работы и устройства

Цель работы: Ознакомление с работой микропроцессора КР580 и работой эмулятора emКР580.

Теоретическая часть

Микропроцессор КР580ВМ80А представляет собой изготовленную по n-МОП технологии БИС, содержащую около 5000 транзисторов. БИС процессора реализована на кремниевом кристалле размером около 30 мм 2 , заключенном в корпусе с 40 выводами. Длина слова процессора равна 8 разрядам. Тактовая частота процессора равна 2 МГц. Каждая команда выполняется за 1..5 машинных циклов, каждый из которых состоит из 3..5 тактов. Таким образом, средняя производительность оценивается на уровне 200..300 тыс. оп/c на частоте 2 МГц. Уровни напряжения питания: +5, –5 и +12 В.

Микропроцессор имеет раздельные 16-разрядную шину адреса и 8-разрядную шину данных. 16-разрядная шина адреса обеспечивает прямую адресацию внешней памяти объемом до 64 Кбайт и 256 устройств ввода/вывода.

Изначально выпускался НПО «Кристалл» (г. Киев, Украина), впоследствии на заводах «Днепр» (г. Херсон, Украина), «Квантор» (Тернопольская обл., Украина), «Квазар» (г. Киев, Украина), «Электроприбор» (г. Фрязино, Россия).

Элементы архитектуры мп-системы на базе kp580

Рис. 1. Основные компоненты МП-системы.

Общая структура системы на базе микропроцессора KP580 показана на рис.1. В ней выделяют три основных компонента − центральный процессор, функции которого выполняет микропроцессор, память и средства ввода-вывода.

Микропроцессор является единственным активным компонентом системы и реализует следующие функции:

1) управляет выполнением команд программы: выбирает команду, считывает операнды, преобразует их в соответствии со смыслом команды и определяет адрес следующей команды;

2) управляет обменом различной информацией между компонентами системы;

3) реагирует на разнообразные внешние сигналы.

Память МП-системы представлена программным энергонезависимым постоянным запоминающим устройством (ПЗУ), допускающим только считывание хранимой информации, и полупроводниковой оперативной памятью (или запоминающим устройством с произвольной выборкой — ЗУПВ), выполняющей операции считывания и записи.

В функциональном отношении память состоит из однотипных ячеек, длина (разрядность) которых совпадает с длиной слова микропроцессора, т.е. составляет 8 бит (один байт). Ячейки пронумерованы, номера их называются адресами, и для обращения к ячейке достаточно указать ее адрес. Совокупность ячеек, к которым потенциально может адресоваться микропроцессор, называется адресным пространством памяти, а фактически имеющиеся ячейки образуют рабочее пространство памяти МП-систем.

Адресное пространство микропроцессора КР580 составляет 64 Кбайт (65536 ячеек). Адресное пространство графически изображается в виде столбца из 64 строк с двоичными адресами от 00…00 до II. II. Различные области адресного пространства группируются в блоки из последовательных ячеек, образующие так называемую карту памяти. Блоки могут относиться к аппаратным устройствам, например блоки ПЗУ или ЗУПВ или к программным образованиям, например основная программа, подпрограммы и др.

Средства ввода-вывода (ВВ) представлены портами ввода и вывода. Информация от устройств ввода поступает в порты ввода и считывается микропроцессором, а порты вывода воспринимают информацию от микропроцессора и передают ее в устройства вывода. В простейшем случае порты ввода и вывода − это буферные регистры, имеющие определенные адреса и выполняющие функции сопряжения МП-системы с разнообразными периферийными устройствами.

Коды команд мп кр580

В таблице 2 приведена информация для определения машинного кода любой команды процессора КР580.

Руководство пользования эмулятором emКр580

Для сокращения затрат времени студентов на выполнение работ в учебный процесс внедрен эмулятор emКР580, который представляет собой программу-приложение, имитирующую все основные действия, выполняемые микропроцессором КР580ВМ80/КР580ВМ80А при отработке им некоторой управляющей программы, составляемой студентом на языке Ассемблер. Эмулятор разработан на кафедре “Автоматизация и информационные технологии” студентом Фарраховым А.У., под руководством доцента Заморского В.В.

Эмулятор микропроцессора КР580ВМ80/КР580ВМ80А (МП КР580) является приложением для операционных систем Windows 9x/NT, поэтому для него характерны свойства, присущие всем приложениям данных операционных систем. А именно: возможность управления размерами окон стандартными кнопками, возможность параллельной загрузки других приложений, возможность изменения цветов и параметров окон в зависимости от настройки интерфейса операционной системы, также реализованы всплывающие подсказки и пр.

Единственным файлом программы эмулятора МП КР580ВМ80 является файл emKP580.exe. Все необходимые данные для работы программы «вшиты» в этот файл. Это сделано для удобства переноса программы из одного компьютера на другой.

Создание программы на Ассемблере осуществляется в два этапа:

  1. Создание или считывание программы на Ассемблере для данного процессора. Этот этап выполняется в текстовом редакторе эмулятора, окно которого появляется после запуска приложения. После завершения написания программы в текстовом редакторе ее необходимо проверить на наличие ошибок. После проверки можно переходить ко второму этапу.
  2. Эмуляция (симуляция) выполнения написанной программы для микропроцессора КР580. При этом можно отслеживать любое изменение состояний

регистров, флагов и т. п. при выполнении как отдельной команды, так и группы команд. Если обнаруживается, что выполняемые действия программы не удовлетворяют требованиям, необходимо вернутся на предыдущий этап и изменить текст программы.

Текстовый редактор

Текстовый редактор предназначен для ввода программы на Ассемблере для микропроцессора КР580. Заголовок редактора состоит из названия текущего файла и названия приложения. Предусмотрено изменение размеров окна редактора.

Как и другие приложения Windows, редактор имеет меню, в котором содержатся все выполняемые им действия. Большинство команд в меню имеют горячие клавиши, при нажатии соответствующей комбинации клавиш происходит автоматический вызов соответствующего пункта меню. Также редактор содержит панель инструментов с быстрыми кнопками, которые наиболее часто в нем используются. Кнопки дублируют соответствующие команды меню, поэтому их описание здесь не приводится. Каждая кнопка имеет смысловую иконку и подсказку, что облегчает ее понимание.

Статусная строка, находящаяся внизу окна редактора, показывает текущую строку, текущий столбец, был ли файл изменен и подсказку выполняемого действия при выборе того или иного пункта меню.

Меню редактора содержит следующие пункты:

  • Файл. Сгруппированы все действия, которые можно выполнять над файлом. Сюда входит следующее пункты:
    • Создать. Создать новый файл. Создается новый файл под именем «Без имени». При этом перед созданием файла предлагается сохранить текущий файл.
    • Открыть. Открыть ранее созданный файл. Вызывается окно открытия файла, указывающее на текущую папку. В этом окне имеется возможность показа файлов с расширением «asm», файлов с расширением «txt», файлов с расширением «rtf» и файлов с любым расширением (*.*). Файлы с расширениями «asm» и «txt» должны содержать данные в обычном текстовом формате, а файлы с расширением «rtf» должны содержать данные в формате RTF.
    • Сохранить. Сохранить текущий файл. Если файл имеет имя «Без имени», то предлагается сохранить его под другим именем. Файл может быть сохранен в текстовом формате (с расширениями «asm» или «txt») либо в формате RTF (с расширением «rtf»). При этом по умолчанию, файлу присваивается расширение «asm». Если файл был открыт и изменен или сохранен под именем, отличным от «Без имени», и изменен, то просто выполняется сохранение, при этом старое содержимое файла теряется.
    • Сохранить как…. Сохранить текущий файл под другим именем. Здесь предлагается сохранить файл с некоторым именем под другим именем. Файл может быть сохранен в текстовом формате (с расширениями «asm» или «txt») либо в формате RTF (с расширением «rtf»). При этом по умолчанию, файлу присваивается расширение «asm».
    • Печать. Вывод текущего файла на принтер. Вызывается стандартное окно печати, где можно настроить параметры печати.
    • Выход. Завершение работы с приложением.

    Дополнительно в меню «Файл» появляются четыре подпункта меню, которые показывают названия файлов, использованных в текущем сеансе работы с эмулятором. Названия файлов располагаются в порядке увеличения времени их открытия (первым располагается файл, открытый в последний раз). Текущий файл, если он еще не внесен в список, при открытии в этот список не заносится, а заносится только при его закрытии.

    • Правка. Сгруппированы все действия, которые можно выполнять над текстом.
      • Отмена. Отмена в тексте последнего выполненного действия. При этом отменяется только одно действие, и повторное нажатие вернет выполненное действие.
      • Вырезать. Забирает выделенный фрагмент текста в карман.
      • Копировать. Копирует выделенный фрагмент текста в карман.
      • Вставить. Вставляет текст из кармана в текущую позицию курсора.
      • Шрифт…. Вызывает стандартное окно выбора шрифта и его параметров. При отсутствии выделенного фрагмента текста изменения накладываются на весь текст.
      • Ассемблировать. Производится проверка на различные ошибки. Ограничения и правила приведены в пункте «Синтаксис редактора». Здесь весь текст проверяется на ошибки и в случае возникновения ошибки появляется поле ошибок, в котором указаны номер строки и вид ошибки. Курсор переводится на начало той строки, где возникла первая ошибка. Если ошибок не обнаружено, то поле ошибок не отображается и не выдается никаких сообщений. После этого можно запустить эмулятор.
      • Эмулировать. Отличается от предыдущего пункта тем, что после проверки на ошибки запускается эмулятор.
      • Помощь. Вывод помощи текстового редактора.
      • О программе…. Вывод некоторой информации о программе и о ее разработчике.

      Использование эмуляторов вычислительных устройств в образовательном процессе и их особенности Текст научной статьи по специальности «Компьютерные и информационные науки»

      Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Иванов М.А., Чикалов А.Н.

      Описаны способы эмулирования цифровых систем и особенности эмуляторов для учебных целей. Проанализированы особенности эмулятора микропроцессора КР580ВМ80А .

      i Надоели баннеры? Вы всегда можете отключить рекламу.

      Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Иванов М.А., Чикалов А.Н.

      UniICE — аппаратно-программная система внутрисхемной эмуляции микропроцессоров различных типов

      Концептуальные основы и компонентный состав IEESD-2000 — интегрированной среды сквозной совместной разработки аппаратного и программного обеспечения встроенных цифровых систем

      Об особенностях детерминированного воспроизведения при минимальном наборе устройств
      Эмулятор PCI Express для HDL-моделирования
      Применение программных эмуляторов в задачах анализа бинарного кода
      i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
      i Надоели баннеры? Вы всегда можете отключить рекламу.

      Текст научной работы на тему «Использование эмуляторов вычислительных устройств в образовательном процессе и их особенности»

      В E S E A R >: II

      ТЕХНОЛОГИИ ИНФОРМАЦИОННОГО ОБЩЕСТВА

      Использование эмуляторов вычислительных устройств в образовательном процессе

      и их особенности

      Описаны способы эмулирования цифровых систем и особенности эмуляторов для учебных целей. Проанализированы особенности эмулятора микропроцессора КР580ВМ80А.

      Ключевые слова: микропроцессор, эмулятор, КР580ВМ80А, ассемблер, учебный процесс.

      Иванов М.А., Чикалов А.Н.,

      Северо-Кавказский филиал Московского технического университета связи и информатики

      В настоящее время самые разнообразные компьютерные и информационные технологии находят применение в области образования. Без компьютерных систем невозможно представить себе процесс подготовки современного специалиста в любой области. Использование компьютерных технологий в образовательном процессе в условиях профессионального учебного заведения предоставляет обучающимся современные средства, которые позволяют ускорить процессы интеллектуального развития, а также способствуют формированию профессиональных навыков.

      Эмуляторы вычислительных устройств являются незаменимым инструментом в образовательном процессе. Эмуля?ция (англ. emulation) воспроизведение программными или аппаратными средствами либо их комбинацией работы других программ или устройств. Эмуляция позволяет выполнять компьютерную программу на платформе (компьютерной архитектуре и/или операционной системе), отличной, или в некоторых случаях идентичной той, для которой она была написана в оригинале. Эмуляцией также называют сам процесс этого выполнения. В отличие от симуляции, которая лишь воспроизводит поведение программы, при эмуляции ставится цель точного моделирования состояния имитируемой системы, для выполнения оригинального машинного кода.

      Эмуляторы используются достаточно часто в самьх различных целях. Например, при разработке новых вычислительных систем, сначала создается эмулятор, выполняющий программы, разрабатываемые для еще несуществующих компьютеров. Это позволяет оценить систему команд и наработать базовое программ-

      ное обеспечение еще до того, как будет создано соответствующее оборудование. Так же использование эмулятора позволяет исследовать различные ситуации, которые трудно воспроизвести на реальной аппаратуре.

      В свое время была доказана принципиальная эквивалентность определения понятия вычислимости функции или алгоритма, реализуемого для абстрактных вычислительных машин (например, машин Тьюринга, Маркова, Поста и т.д.). Таким образом, было открыто широкое поле для реализации программных эмуляторов, которые, на основе системы команд и архитектуры одной вычислительной машины, позволяли имитировать работу другого вычислителя. Таким образом, стало возможным изучать вопросы эффективности реализации алгоритмов на машинах разной архитектуры.

      Важное преимущество эмуляторов возможность многократного воспроизведения рабочих ситуаций. Если надо понять, почему участок программы работает некорректно, можно повторять этот участок снова и снова до тех пор, пока ошибка не будет обнаружена.

      Также, загрузка программы в эмулятор чаще происходит быстрее, чем в реальное «железо», что очень удобно при написании программного обеспечения, при отладке.

      В тоже время, эмуляция очень ресурсоёмкая задача, и может требовать от компьютера намного большей производительности (скорости процессора, объёма памяти), чем производительность эмулируемой системы. Чем сложнее система и выше точность эмуляции — тем большая производительность для неё требуется.

      Создание эмулятора — очень сложная задача, требующая большого опыта программи-

      Use of emulators of computing devices in educational process and their feature

      Ivanov M.A., Chikalov A.N.,

      North-Caucasian branch of the Moscow technical university relationship and informatics

      The ways of emulation of digital systems and features of emulators for the educational purposes are described. The features of the emulator of the microprocessor KP580BM80A are analyzed.

      Keywords: microprocessor, emulator, КР580ВМ80А, assembler, educational process.

      Наукоёмкие технологии в космических исследованиях Земли № 2-2012

      INFORMATION SOCIETY TECHNOLOGIES

      рования, теоретических знаний, точной информации об устройстве эмулируемой системы. Поэтому эмуляторы одной и той же системы могут различаться как в достоверности эмуляции, так и в требованиях к компьютеру.

      Существует по крайней мере два основных подхода к эмуляции.

      Первый является полностью программным, то есть весь эмулируемый код разбирается и выполняется процедурами эмулятора.

      Данный подход самый безопасный, т.к. в независимости от того, какой вредоносный код загрузят в эмулятор, он всё равно не сможет воздействовать на настоящий процессор. Также этим методом можно эмулировать произвольные архитектуры процессоров. Так, например, на персональном компьютере с 32-битным процессором можно эмулировать 64-битный процессор или вообще процессор мобильного телефона или игровой приставки. Однако этот подход также самый трудоёмкий и медленный по скорости исполнения эмулируемого кода. Трудоёмкость заключается в необходимости реализовывать в процедурах каждую инструкцию процессора. Медленный же он потому, что исполнить инструкцию на настоящем процессоре намного быстрее чем исполнить подпрограмму, эмулирующую эту инструкцию и состоящую из множества команд.

      Учитывая эти основные минусы, самым большим из которых является скорость исполнения, был разработан метод частичного исполнения эмулируемого кода на настоящем процессоре. Суть его том, что в эмулируемом коде выбирается блок безопасного кода и передаётся на исполнение реальному процессору, после чего управление снова переходит на программу эмулятора. Безопасен код в том смысле, что он не сможет навсегда перехватить управление или обрушить программу, например, попытавшись записать данные из недоступной для записи области памяти.

      Этот подход, несмотря на заметно более высокую скорость исполнения, также имеет свои минусы. Первый из них сложность реализации. Эмулируемый код нужно выбирать или модифицировать таким образом, чтобы после передачи его реальному процессору не возникало ошибок и после исполнения можно было вернуться обратно в эмулятор. Второй — по причине частичного исполнения на реальном процессоре эмулируемый код должен быть напи-

      сан под ту же архитектуру, что и эмулятор.

      Эмуляторы редко используют прямой доступ к оборудованию. Достаточно обеспечить некоторый уровень совместимости, обеспечивающий трансляцию системных вызовов эмулируемой системы в вызовы работающей системы.

      Обычно, эмулятор состоит из нескольких модулей, отвечающих за различные подсистемы эмулируемого компьютера. Чаще всего, эмулятор состоит из:

      — эмулятора или симулятора центрального процессора;

      — модуля подсистемы памяти, эмулирующего ОЗУ и ПЗУ;

      — модуля или модулей эмуляции различных устройств ввода/вывода.

      Системная шина обычно не эмулируется, по причинам упрощения или повышения производительности, и виртуальная периферия обращается непосредственно к модулю ЦП и модулю памяти.

      Для решения учебных задач требования к эмулятору могут быть изменены. Бесспорно, они зависят от конкретных изучаемых вопросов, но на этапе первичного изучения вычислительной техники основными требованиями являются наглядность, доступность для понимания, наличие регулируемой детализации рассматриваемых процессов, но вместе с тем, и

      В Е S Е A R С II

      возможность демонстрации работы устройства в условиях решения задач реальной практической сложности. Эти требования противоречивы, часто не удается найти золотую середину, и принимаются решения, корни которых лежат в желании максимально продемонстрировать все преимущества устройства. При этом значительный урон наносится методическим возможностям эмулятора, что для учебного процесса недопустимо и часто сопровождается просто отказом от его использования.

      В этом смысле значительный интерес представляет эмулятор микропроцессорной системы КР580 (разработка МИРЭА http://www.zic-homepage.narod.ru). Его нельзя в настоящее время назвать современным, но его структура и система команд является классической, в значительной степени повторяет апробированные технические решения больших ЭВМ, достаточно логически мощная и гибкая. Это делает понятными основные группы команд, обеспечивая при этом достаточно широкие возможности для демонстрации типовых приемов программирования и адресации операндов. Поэтому для начального обучения микропроцессорной технике отказываться от этого эмулятора было бы неправильно.

      Данный эмулятор предполагает: написание программ на языке ассемблера, используя си-

      High technologies in Earth space research № 2-2012

      В E S E A R >: II

      ТЕХНОЛОГИИ ИНФОРМАЦИОННОГО ОБЩЕСТВА

      стему команд МП КР580ВМ80А, их отладку и выполнение в тактовом, командном и сквозном режимах. На нем можно изучать принципы и порядок выполнения команд; приобрести навыки работы с внешними устройствами МП-системы; получить представления об организации внешней и внутренней (регистровой) памяти и стековой области.

      Программа обладает дружественным и лаконичным интерфейсом (см. рис) удобна в использовании и имеет функции сохранения, экспорта и печати данных. В ней предусмотрена контекстная справка по командам, реализованы типовые приемы работы, к которым обучаемые уже приучены благодаря офисным пакетам (работа с меню, приемы перетаскивания команд в окно выполнения, работа со справкой, экспорт данных и т.д.). Всё это позволяет легко и быстро освоить приемы работы с эмулятором, получить необходимые навыки управления микропроцессором и работы с внешними устройствами.

      Также, эмулятор может быть полезен и для опытных пользователей, к примеру, в качестве визуализированного помощника в программировании разрабатываемой ими МП-системы на базе КР580ВМ80 (¡8080).

      В возможности эмулятора входит: работа с 5-ю внешними устройствами, такими, как монитор, НГМД, НЖМД, сетевой адаптер и принтер; отладка и выполнение программ в тактовом, командном и сквозном режимах; работа со всем спектром системы команд данного МП; сохранение, загрузка и печать данных и результатов; ручной ввод и редактирование дан-

      ных в ОЗУ и регистры общего назначения.

      В этом эмуляторе удачно сочетаются демонстрация аппаратных особенностей работы процессора и широкие возможности по изучению технологии выполнения программных продуктов. Способ визуализации содержимого ОЗУ позволяет, с одной стороны, увидеть содержимое каждой ячейки памяти, а с другой -требует понимания смысла того кода, который наблюдает обучаемый. В этом можно найти даже некоторый скрытый смысл, который можно использовать в учебных целях. В частности, такие особенности требуют глубокого понимания принципов организации различных типов команд, механизмов работы трансляторов и т.д.

      Вместе с тем понятно, что такое отображение ОЗУ диктуется сложными техническими причинами. Гораздо проще дешифрировать каждый байт (как будто он является кодом операции команды), отобразив его мнемоникой и алгоритмически обработать последующие байты, соответствующие длине команды.

      Альтернативой такому решению должно было стать написание программы для эмулятора в реальных мнемокодах ассемблера и размещение данных в ОЗУ для выполнения. Однако такое решение связано с написанием реального компилятора, а это задача на несколько порядков более сложная. Для эмулятора, который используется при изучении аппаратной части микропроцессора и принципов его программирования решать ее нецелесообразно. Следует отдать должное авторам программы, которые сумели принять такое удачное решение. Они упростили задачу, но при этом сохра-

      нили все необходимые свойства эмулятора для образовательного процесса.

      К сожалению, эмулятор не свободен от ряда ошибок. Например, нарушена динамика работы с указателем стека, не устанавливается признак переноса при выполнении команд CMP и CPI, команда JNC не проверяет на равенство. При изучении отдельных команд из этого можно даже извлечь пользу, но при отладке сложных программ ведет к большим потерям времени.

      Этот эмулятор использовался для разработки и отладки многих программ, применяющихся в реальных программных системах. Показал свою высокую эффективность и как средство отладки и как инструмент повышения эффективности образовательного процесса.

      1. Легков К.Е. Процедуры и временные характеристики оперативного управления трафиком в транспортной сети специального назначения пакетной коммутации // T-Comm: Телекоммуникации и транспорт, 2012. — №6. — С. 22-26.

      2. Бабошин ВА, Сиротенко Ф.Ф., Легков К.Е. Предложения по построению аппаратно-программного комплекса резервирования информации телекоммуникационной сети специального назначения // Труды Северо-Кавказского филиала Московского технического университета связи и информатики. — Ростов-на-Дону: СКФ МТУСИ, 2011. -С. 175-178.

      Наукоёмкие технологии в космических исследованиях Земли

      Лекция 17. Структура и система команд КР580ВМ80

      Система команд МП серии КР580ВМ80 содержит команды трех форматов: однобайтные, двухбайтные и трехбайтные.

      Содержимое первого байта указывает на формат команды, код операции, вид адресации и регистры или регистровые пары, если они участвуют в выполнении операции. При этом невозможно указать конкретные разряды, которые отводятся под первые три из указанных составляющих команды, потому что они могут находиться в любых разрядах команды. Но, несмотря на это, будем считать что они кодируются как одно поле, которое называется полем кода операции. Варианты форматов первого байта команды приведены на рисунке 9.

      Если в выполнении операции участвуют регистры, то один или два из них могут быть указаны в первом байте команды. При этом под номера регистров в поле команды отводятся вполне определенные разряды: три младших разряда (b2 — b0) кодируют номер регистра источника, содержащего операнд, а три средних (b5 — b3) — номер регистра-приемника, в который засылается результат операции. В тех случаях, когда оба или один из этих регистров не участвуют в выполнении операции, соответствующие разряды используются под код операции.

      Принято следующее кодирование регистров:

      000 — регистр В, 100 — регистр Н,

      001 — регистр С, 101 — регистр L,

      010 — регистр D, 110 — ячейка памяти,

      011 — регистр Е, 111 — аккумулятор А.

      Код 100 является признаком косвенной адресации к памяти с помощью 16-разрядного адреса, размещенного в регистрах Н и L. В зависимости от расположения этого кода в команде, обращение к соответствующей ячейке памяти производится или за операндом, или для записи результатов операции.

      Лекция 17. Структура и система команд КР580ВМ80

      Ряд команд МП предусматривает обработку или передачу чисел двойной длины. В этих случаях пары регистров В и С, D и Е или Н и L объединяются в 16-разрядные регистры, имеющие номера 00, 01 и 10 соответственно. Под номера регистровых пар в командах отводятся разряды b2 и b1 (регистр-источник), b5 и b4 (регистр-приемник), а разряды b0 и b3 используются для указания кода операции.

      К двухбайтным командам в МП относятся команды с непосредственной адресацией и команды ввода-вывода. Соответственно второй байт команды этой группы содержит 8-разрядный операнд или 8-разрядный адрес устройства ввода или вывода.

      В трехбайтных командах второй и третий байты содержат 16-разрядные адреса (в командах с прямой адресацией) или 16-разрядные операнды (в командах загрузки регистровых пар и указателя стека).

      После выполнения каждой операции а АЛУ вырабатывается пять признаков, значения которых могут влиять на выполнение последующих команд обработки информации и условной передачи управления. Однако следует иметь ввиду, что различные команды по-разному влияют на отдельные признаки.

      Для удобства сохранения и восстановления состояния МП во время прерываний и перехода к подпрограммам все указанные признаки сохраняются в специальном регистре — регистре признаков. Расположение признаков в разрядах регистра приведено в таблице.

      Лекция 17. Структура и система команд КР580ВМ80

      где S — признак “знака” (принимает значение старшего разряда

      Z — признак нулевого результата;

      АС -признак вспомогательного переноса (если есть перенос

      между тетрадами байта, то АС=1, иначе АС=0;

      Р — признак четности результата (если число единиц в байте

      результата четно, то Р=1, иначе Р=0);

      С — признак переноса или заема (если при выполнении коман-

      ды возник перенос из старшего разряда или заем в стар-

      ший разряд то С=1, иначе С=0).

      Примечание: Для команд логического умножения признак вспомогательного переноса АС принимает значение четвертого разряда результата.

      Полностью система команд МП серии КР580ВМ80 приведена в приложении учебного пособия «Микропроцессоры и микропроцессорные системы». Там же для каждой команды указывается как, после ее выполнения, изменяется значение каждого признака: устанавливается в соответствии с результатом операции (+), не изменяется (-), сбрасывается в нуль (0) или устанавливается в единицу (1).

      В общем случае команда должна содержать следующую информацию:

      — код операции, указывающий операцию, которую должен выполнить МП;

      — адреса двух операндов (слагаемых, вычитаемых и т.д.). Если какой- либо из операндов является константой, то вместо его адреса в команде может быть задано значение самого операнда. Однако это обстоятельство должно быть отобржено в коде операции, что бы МП использовал соответствующую часть команды с указанным ее назначения;

      — адрес ячейки памяти в которую должен быть помещен результат операции;

      — адрес следующей команды.

      Т.е. Об этом говорит сайт https://intellect.icu . команда в общем случае является четырехадресная. Однако, такая структура команд приводит к более длинному формату команд, что, в свою очередь, сопряжено с более сложным процессом их обработки и структурой процессора. Поэтому, в МП технике наибольшее распространение получили безадресные и одноадресные команды, позволяющие построить простой процессор. Однако, при выполнении сложных операций находят применение различные форматы команд.

      В системе команд МП серии 580 имеются однобайтные, двухбайтные и трехбайтные команды.

      Информация о способе адресации выполняемой команды содержится в коде операции первого байта команды.

      Для ускорения вычислений некоторые операнды хранятся в блоке РОН. Команды, работающие с этими операндами, используют укороченные адресные коды (регистровую адресацию).

      Эти команды позволяют исключить сравнительно длинный цикл обращения к ОЗУ и тем самым существенно повысить скорость выполнения операций. В связи с ограниченной разрядностью РОН и при работе с большим массивом данных, используются другие методы адресации, которые позволяют обращаться к операндам, расположенным во внешней по отношению к МП памяти. Наиболее распространенной является косвенная регистровая адресация, которая использует регистровую пару HL.

      17.1. Пересылки однобайтовые

      Команды этой группы не изменяют содержимого регистра признаков РгП (F). Принципы их выполнения иллюстрирует рис. 17.1.

      Ниже рассмотрим в качестве примера последовательность из нескольких команд однобайтовых пересылок. Операнды и адреса записаны в шестнадцатеричной системе счисления. Кроме того, здесь и далее предполагается, что аккумулятор, ячейки памяти и регистры первоначально (до записи) содержат 00:

      Лекция 17. Структура и система команд КР580ВМ80

      Лекция 17. Структура и система команд КР580ВМ80

      Рис.17.1. Схема взаимодействия узлов МП при выполнении однобайтовых пересылок

      Лекция 17. Структура и система команд КР580ВМ80

      Лекция 17. Структура и система команд КР580ВМ80

      17.2. Пересылки двухбайтовые

      Лекция 17. Структура и система команд КР580ВМ80

      Команды этой группы не изменяют содержимого РгП (F). Принципы их выполнения иллюстрирует рис. 17.2. Предполагается, что PSW≡(A)(F).

      Рис.17.2. Схема взаимодействия узлов МП при выполнении двухбайтовых пересылок; & — двухбайтовый операнд; остальные обозначения аналогичны рис.17.1

      Поясним две команды:

      XCHG – это обмен содержимым пар HL и DE, причем (H) « (D), (L) « (E);

      XTHL – это обмен содержимым пары HL и верхушки стека. Значение SP не изменяется, при этом (L) « ((SP)) и (H) « ((SP)+1).

      Рассмотрим в качестве примера несколько команд двухбайтовых пересылок.

      Лекция 17. Структура и система команд КР580ВМ80

      Лекция 17. Структура и система команд КР580ВМ80

      17.3. Операции в аккумуляторе

      Команды этой группы изменяют содержимое РгП (F) в соответствии с содержимым аккумулятора (рис. 17.3).

      Выполняемые операции подразделяются на двуместные и одноместные.

      В общем случае РОН = AçBçCçDçEçHçL; СКО – символьный код операции.

      В свою очередь, двуместные операции в аккумуляторе делятся на арифметические и логические.

      — сложение содержимого аккумулятора с содержимым РОН, ячеек памяти (косвенная адресация по HL), непосредственным операндом;

      — сложение содержимого аккумулятора и тех же операндов и бита переноса C (часто обозначают CY);

      — вычитание из содержимого аккумулятора содержимого РОН, ячеек памяти (косвенно адресуемых по HL) или непосредственного операнда;

      — вычитание из содержимого аккумулятора тех же операндов и бита переноса;

      — сравнение содержимого аккумулятора с содержимым РОН, ячейками памяти (косвенно адресуемых по HL), непосредственным операндом.

      Лекция 17. Структура и система команд КР580ВМ80

      Рис.17.3. Схема взаимодействия узлов МП при выполнении двуместных операций в аккумуляторе

      В последнем случае вычисляется разность (A) – (операнд), которая никуда не записывается (т.е. A не изменится), а используется для установки флагов в регистре признаков F.

      Рассмотрим несколько примеров:

      SUB M A ¬ (A) — (ячейка (M));

      ACI 07 A ¬ (A) + 07 + C;

      CMP D (A) — (D) ® установка F, (A) – не изменилось.

      · Логические (побитовые) операции:

      — конъюнкция содержимого аккумулятора с содержимым РОН, ячейки памяти (косвенно адресуемой по HL), непосредственным операндом.

      — дизъюнкция содержимого аккумулятора с содержимым РОН, ячейки памяти (косвенно адресуемой по HL), непосредственным операндом.

      — сложение по модулю 2 с содержимым РОН, ячейки памяти (косвенно адресуемой по HL), с непосредственным операндом.

      Рассмотрим несколько примеров:

      ORA M A ¬ (A) Ú (ячейка (M));

      XRI F4 A ¬ (A) Å F4.

      DAA – десятичная коррекция аккумулятора при работе с двоично-десятичными числами.

      CMA – инверсия аккумулятора;

      STC – установка бита C (т.е. C ¬ 1);

      CMC – инверсия бита C (т.е. C ¬`C).

      Две последние команды выполняются в РгП (F).

      · Сдвиги на 1 разряд:

      Примеры реализации сдвиговых команд приведены на рис. 17.4.

      Лекция 17. Структура и система команд КР580ВМ80

      Рис.17.4. Схема выполнения операций сдвига

      17.4. Операции в РОН и памяти

      Ряд операций в МП комплекте КР580 могут быть выполнены помимо аккумулятора, непосредственно в РОН и ячейках памяти. К таким операциям относятся:

      Арифметические однооперандные операции увеличения на 1 (инкремент) и уменьшения на 1 (декремент) являются распространенными операциями для организации счетчиков при просмотре таблиц. На рис. 17.5 представлены примеры выполнения этих команд с РОН, регистровой парой и ячейкой памяти, косвенно адресуемой по HL.

      Лекция 17. Структура и система команд КР580ВМ80

      Рассмотрим два примера:

      Лекция 17. Структура и система команд КР580ВМ80

      Следует помнить, что при инкременте/декременте регистровой пары содержимое рассматривается как единое 16-разрядное число. При выполнении этой команды РгП не изменяется. При выполнении команды инкремента/декремента РОН и ячеек памяти, косвенно адресуемых по HL, РгП изменяется.

      Сложение двухбайтовых операндов

      DAD rp HL ¬ (HL) + (rp)

      В РгП изменяется только признак C (CY).

      17.5. Команды управления

      Команды этой группы не изменяют содержимого РгП (F).

      Команды безусловного перехода

      По прямому адресу

      JMP @, где @ – двухбайтовый адрес (@ ® PC).

      Лекция 17. Структура и система команд КР580ВМ80

      По косвенному адресу

      PCHL – адрес перехода хранится в регистровой паре HL. При ее выполнении (HL) → PC.

      Команды условного перехода

      Jcon @, где con – мнемоника условия от английского слова condition.

      Ранее отмечалось, что в качестве условия перехода используют состояние разрядов (флажков) РгП (F). Мнемоника, соответствующая этим состояниям, представлена на рис. 17.6.

      Лекция 17. Структура и система команд КР580ВМ80

      Рис.17.6. Регистр признаков РгП(F)

      Например: JC 8BFE – при C=1 переход по адресу 8BFE, при C=0 выполняется следующая по адресу команда.

      Команды вызова ПП и возврата

      Ранее отмечалось, что адрес возврата автоматически сохраняется в стеке, т.е. (PC) ® стек.

      CALL @ – вызов подпрограммы;

      RET – возврат из подпрограммы.

      Ccon @ – вызов подпрограммы;

      Rcon – возврат из подпрограммы.

      Действие команд аналогично действию команд условного перехода, т.е. если условие истинно, то вызов или возврат. Если нет, то выполняются следующие команды.

      Прочие команды управления

      RST n, где n = 0,1. 7 – рестарт по вектору прерывания n.

      При выполнении этой команды происходит передача управления подпрограмме, обслуживающей данное прерывание. В процессе выполнения команды RST содержимое счетчика команд PC запоминается в стеке, а в PC записывается адрес соответствующего вектора прерывания.

      Этот адрес задается следующим образом. Команда RST имеет структуру 11NN N111, т.е. один байт. Трехразрядная комбинация NNN задается значением n (n = 0. 7). В счетчик команд РС заносится значение 0000 0000 00NN N000, которое служит адресом соответствующего вектора прерывания.

      Таким образом, задавая определенное значение n, можно сформировать адрес одного из восьми векторов прерывания. Эти адреса располагаются в зоне от 0000H до 0038H адресного пространства и идут через 8 байт, т.е. под них зарезервированы первые 64 ячейки памяти (каждому из 8- векторов отведено по 8 байт). В этих зонах (по 8 байт) записывают только команды перехода к соответствующим подпрограммам (обработчикам), которые располагаются в других областях памяти.

      Прерывающие подпрограммы (как и обычные подпрограммы) обязательно заканчиваются командой RET. В процессе выполнения этой команды адрес команды основной программы, перед которой произошло прерывание, выбирается из стека и передается в регистр адреса РА, а увеличенное на 1 значение заносится в счетчик команд.

      EI – разрешение прерывания. Эта команда ставится в начале участка программы, на котором разрешено прерывание. По этой команде триггер разрешения прерывания в УУ МП устанавливается в состояние 1.

      DI – запрещение прерывания. Эта команда ставится в конце участка программы, на котором разрешалось прерывание, и сбрасывает триггер в состояние 0.

      NOP – «пустая» команда. Осуществляет пропуск четырех тактов. Изменяется только PC.

      HLT – останов. Вызывает прекращение выполнения программы и переход в состояние останова. МП отключается от внешних шин адреса и данных (т.е. их буферы переходят в состояние Z). На выходе WAIT (ожидание) устанавливается уровень 1. Это состояние может быть прервано сигналами запуска МП либо переводом его в состояние прерывания.

      17.6. Эмулятор МП КР580ВМ80

      Начало работы с программой в основном заключается в написании или загрузке программы на Ассемблере в эмулятор. Для этого можно воспользоваться либо панелью системы команд программы, либо панелью редактирования значений ячеек ОЗУ эмулятора, либо загрузить образ ОЗУ с носителя.

      При необходимости, можно заполнить соответствующими значениями регистры общего назначения эмулятора.

      После чего, для подробного изучения каждого такта конкретной команды, можно воспользоваться кнопкой тактированного выполнения команды.

      Для выполнения программы в командном режиме, (к примеру, для отладки программы) используется кнопка командного режима.

      Соответственно, для выполнения программы целиком, следует пользоваться кнопкой программного режима.

      Если выполнение программы завершается командой останова 76h HLT, устанавливается флаг останова микропроцессора HLDA и выдается соответствующее сообщение. Работу с эмулятором можно продолжить, сняв флаг при помощи пункта меню «МП-система→Снять флаг HLDA», либо воспользовавшись клавишей F12 на клавиатуре, либо произвести сброс РОН (см. ниже).

      Для очистки (обнуления) РОН и/или ОЗУ эмулятора, воспользуйтесь группой кнопок «Сброс», либо пунктом меню программы «Файл→Новый (очистить память и регистры)»

      После написания программы на языке Ассемблера, ее можно сохранить в виде образа ОЗУ и РОН эмулятора на какой-либо носитель, и при следующей надобности, также загрузить в эмулятор. Загружать и сохранять можно не только весь образ, но и часть ОЗУ эмулятора.

      Для удобства работы с написанными программами в виде таблиц или текстовых документов, предусмотрены возможности экспорта части содержимого ОЗУ и/или РОН эмулятора в MS Excel, MS Word и текстовый файл.

      Также предусмотрена возможность печати части содержимого ОЗУ и/или РОН эмулятора на принтере.

      Лекция 17. Структура и система команд КР580ВМ80

      Рисунок – Формат команд

      Лекция 17. Структура и система команд КР580ВМ80

      Рисунок – Система команд МП КР580ВМ80

      Главное окно программы:

      Лекция 17. Структура и система команд КР580ВМ80

      Система команд МП КР580ВМ80:

      Лекция 17. Структура и система команд КР580ВМ80

      Лекция 17. Структура и система команд КР580ВМ80

      Лекция 17. Структура и система команд КР580ВМ80

      Лекция 17. Структура и система команд КР580ВМ80

      Лекция 17. Структура и система команд КР580ВМ80

      Лекция 17. Структура и система команд КР580ВМ80

      Лекция 17. Структура и система команд КР580ВМ80

      17.7. Контрольные вопросы

      1. Схемы взаимодействия узлов МП КР580ВМ80 при выполнении одно- и двухбайтовых пересылок.

      2. Схема взаимодействия узлов МП КР580ВМ80 при выполнении двуместных операций в аккумуляторе.

      3. Виды операций сдвига и схема их выполнения.

      4. Команды управления в МП КР580ВМ80.

      Надеюсь, эта статья про система команд кр580вм80, была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое система команд кр580вм80, кр580вм80 и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Компьютерная схемотехника и архитектура компьютеров

      Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *