Изучение системы команд микропроцессора КР 580 ИК80А

Цель работы: изучение системы команд микропроцессора КР 580 ИК80А для написания простейших программ пользователя.

Оборудование: учебный микропроцессорный комплекс (УМК).

Команды микропроцессора

Команды микропроцессора можно разделить на пять групп:

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

2. Арифметические команды – команды, реализующие арифметические операции над числами с фиксированной и плавающей запятой (сложение, вычитание, умножение, деление и др.).

3. Логические команды – команды, реализующие логические операции, такие как: конъюнкция (И), дизъюнкция (ИЛИ), логическое отрицание (НЕ) и др.

4. Команды передачи управления – команды переходов (условные и безусловные), команды переходов к подпрограмме.

5. Команды ввода/вывода – это команды приема и передачи информации, соответственно, из или во внешнюю среду. Прием и передача данных, как правило, осуществляется через соответствующие порты микро-ЭВМ.

Команды пересылки осуществляют передачу данных в/из регистра в ячейку(и) оперативной памяти, не изменяя при этом состояние флагов.

Способы адресации в командах

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

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

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

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

Косвенная адресация. При косвенной адресации исходный адрес служит указателем на ячейку, в которой находится эффективный адрес. Таким образом, исходный адрес это «адрес адреса». Частным случаем косвенной адресации является косвенная регистровая адресация, когда исходный адрес, указывает на общий регистр, содержащий эффективный адрес. Косвенная регистровая адресация повышает эффективность программы, так как в команде в этом случае адресное поле должно вмещать только ссылку на общий регистр или регистры. Для косвенной регистровой адресации используется, как правило, пара регистров H и L.

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

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

Порядок ввода и запуска программы пользователя на УМК.

1. Выбрать участок памяти в ОЗУ и занести в него программу в шестнадцатеричном коде.

2. Выбрать участок памяти в ОЗУ и занести в него данные.

3. Передать управление программе пользователя, для чего:

Последовательно нажать следующие клавиши: «СТ» Адрес 1 «| _ |» Адрес 2 «| _ |» Адрес 3 «ВП», где Адрес 1 – начальный адрес программы, Адрес 2 и Адрес 3 – адреса выполнения прерывания программы.

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

Порядок выполнения работы.

1. Составить программу, реализующую выполнение следующих операций согласно варианту задания (таблица 5):

1.1. Непосредственная пересылка данных в регистр;

1.2. Непосредственная пересылка данных в память;

1.3. Непосредственная загрузка пары регистров;

1.4. Прямая загрузка аккумулятора;

1.5. Перемещение данных из аккумулятора в регистр;

1.6. Перемещение данных из памяти в регистр;

1.7. Прямая запись содержимого аккумулятора в память;

1.8. Прямая загрузка пары регистров H и L;

1.9. Косвенная загрузка аккумулятора;

1.10. Прямая запись содержимого пары регистров H и L в память;

1.11. Обмен данными между регистрами H и D, L и E, соответственно;

1.12. Помещение двух данных в стек;

1.13. Извлечение двух данных из стека.

Таблица 5

Варианты заданий

Вариант Задание
Вариант № 1 E HL C 0900/H D
Вариант № 2 B BC E 0901/D D
Вариант № 3 C DE B 0902/L B
Вариант № 4 D DE C 0903/B B
Вариант № 5 E BC D 0904/C B

2. Представить программу на проверку преподавателю.

3. Ввести программу в УМК и запустить на выполнение.

4. Посмотреть ход выполнения программы в пошаговом режиме с промежуточной индикацией.

5. Представить результаты выполненной работы преподавателю.

6. Выключить УМК.

7. Оформить отчет по результатам работы.

Отчет должен содержать: название и цель работы; краткие теоретические сведения о системе команд микропроцессора КР 580 ИК80А; результаты работы, оформленные в виде таблицы; ответы на контрольные вопросы.

Таблица 6

Таблица оформления результатов лабораторной работы

Адрес ячейки памяти Команда на машинном языке Комментарий
     
     

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

1. На что влияют структура и формат команды?

2. Какие виды адресации существуют?

3. Расскажите о достоинствах и недостатках различных способов адресации.

4. Какие способы адресации применяются в современных микропроцессорах?

5. Как реализуется механизм адресации в виртуальной памяти?

Лабораторная работа № 3

Наши рекомендации