ЛАБОРАТОРНАЯ РАБОТА № 2. ЗАПИСЬ И ВЫПОЛНЕНИЕ ПРОСТЫХ ПРОГРАММ
1. ЦЕЛЬ РАБОТЫ
Ознакомление с принципом действия, машинными циклами и тактами микропроцессора КР580: изучение правил записи машинных программ (в машинных кодах и мнемокодах); исследование выполнения команд пересылки байта.
2. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
ЗАПИСЬ ПРОГРАММ ПРИ РАБОТЕ С УОУ
В УОУ "Электроника -580" предусмотрен ввод-вывод программ только в машинных кодах, записанных в шестнадцатеричной системе счисления. Такое представление программ неудобно для программиста, так как затрудняет понимание и увеличивает вероятность ошибок. Для человека более удобна символическая (мнемоническая) запись программ. Поэтому на практике целесообразно совмещать на одном бланке машинные и мнемонические коды команд. Рассмотрим особенности записи программ на примере (программа 2.1):
ПРОГРАММА 2.1
АДРЕС | МАШ. КОД | МЕТКА | МНЕМОКОД | КОММЕНТАРИИ |
3E B5 | START | MVI A, B5 | ЗАСЫЛКА КОДА В5 В АККУМУЛЯТОР | |
814А | 21 A4 82 | LXI H, 82A4 | ЗАСЫЛКА АДРЕСА 82А4 В ПАРУ HL: | |
814D | MJV M, A | ПЕРЕСЫЛКА ИЗ АККУМУЛЯТОРА В ПАМЯТЬ ПО АДРЕСУ ИЗ ПАРЫ HL | ||
814E | E7 | RS14 | КОНЕЦ ПРОГРАММЫ И ВОЗВРАТ В МОНИТОР |
Бланк разделен на пять вертикальных полей. В первом поле записывается шестнадцатеричный адрес ячейки памяти, в которой размещен первый байт кода команды, а во втором поле - машинный код команды (один, два или три байта) в порядке размещения байтов в памяти. При записи следует помнить, что в трехбайтных командах во втором байте команды записывается младший байт адреса или операнда, а в третьем - старший.
В третьем поле записывается символическое имя (метка), соответствующее адресу, находящемуся в первом поле. В примере метка START обозначает ячейку памяти с адресом 8148. В программах метки используются в командах переходов, а также для обозначения некоторых команд с целью повышения наглядности текстов программ.
В четвертом поле записывается мнемоническое обозначение соответствующей машинной команды. Сначала записывается мнемоника кода операции, а затем мнемоники операндов или адресов. В этом поле двухбайтные коды принято записывать в привычном виде: сначала старший байт, а затем - младший.
В поле комментария записываются в свободной форме различные пояснения.
Обычно работа программы заканчивается командой останова (HLT). При отладке программ в УОУ не рекомендуется заканчивать командой останова, так как при этом будет невозможно с помощью монитора просмотреть содержимое регистров или памяти. Вместо команды останова лучше использовать команду RST4 (код Е7), которая будет передавать управление монитору.
При записи программ все числа представляются в шестнадцатеричной системе счисления.
3. ОБЪЕКТЫ ИССЛЕДОВАНИЯ
Работа производится на учебно-отладочном устройстве "Электроника - 580" без дополнительных модулей и контрольно-измерительной аппаратуры.
4. ЗАДАНИЕ ДЛЯ ПОДГОТОВКИ
4.1. Ознакомьтесь с принципом действия, машинными циклами и тактами микропроцессора КР580.
4.2. Изучите правила записи машинных программ при работе с УОУ.
4.3. Напишите программу для выполнения действий, указанных в табл. 2.1 (константы в табл. 2.1 приведены в десятичной системе счисления; скобки обозначают содержимое соответствующего регистра). Программу разместите в любой свободной области оперативной памяти УОУ. Используйте команды пересылки байта:
MOV RD, RS - переслать содержимое регистра-источника RS в регистр-приемник RD (команда занимает в памяти один байт; на выполнение требуется 5 тактов);
Таблица 2.1
ВАРИАНТ | ВЫПОЛНИТЬ УКАЗАННЫЕ ДЕЙСТВИЯ | |||||
31® В | 49 ® D | 128 ® C | (B) ® A | (C) ® H | (D) ® E | |
95 ® A | 108 ® H | 212 ® E | (A) ® B | (H) ® L | (B) ® D | |
209 ® L | 100 ® A | 28 ® C | (L) ® H | (A) ® E | (C) ® B | |
205 ® D | 42 ® H | 82 ® E | (D) ® A | (H) ® B | (B) ® C | |
105 ® C | 54 ® H | 219 ® B | (C) ® A | (H) ® E | (B) ® D | |
99 ® L | 185 ® B | 197 ® E | (L) ® D | (B) ® C | (E) ® H | |
71 ® A | 145 ® D | 231 ® L | (A) ® C | (D) ® H | (L) ® B | |
47 ® H | 168 ® A | 255 ® B | (H) ® C | (A) ® L | (B) ® E | |
59 ® C | 191 ® L | 203 ® E | (C) ® B | (L) ® A | (E) ® B | |
61 ® D | 215 ® B | 152 ® H | (D) ® C | (B) ® L | (C) ® A | |
163 ® A | (A) ® B | 23 ® H | 100 ® C | (C) ® L | 02® D | |
27 ® L | 98 ® B | (L) ® A | 16 ® C | (A) ® D | 56 ® A | |
57 ® H | 21 ® B | 127 ® C | (C) ® D | (B) ® L | 75 ® A | |
61 ® B | (B) ® A | 152 ® B | 64 ® C | (B) ® L | 100 ® H | |
75 ® L | 89 ® A | (L) ® B | 100 ® C | (A) ® H | (C) ® D |
MVI RD, В2> - переслать содержимое второго байта команды в регистр-приемник RD (команда занимает в памяти два байта и выполняется за 7 тактов; во втором байте кода команды размещается константа).
4.4. Пользуясь таблицей кодов команд, размещенной на лицевой панели УОУ, запишите машинные коды команд программы. Константы переведите из десятичной в шестнадцатеричную систему счисления.
5. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
5.1. Введите в УОУ разработанную программу.
5.2. Определите содержимое регистров общего назначения (РОН).
5.3. Установите стартовый адрес программы и запустите ее на выполнение.
5.4. Вновь определите содержимое всех РОН процессора и проверьте правильность решения задачи.
6. СОДЕРЖАНИЕ ОТЧЕТА
Отчет должен содержать:
машинную и символическую программы соответствующего варианта задания;
таблицу содержимого регистров до и после выполнения программы;
анализ результатов и выводы.
7. ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
7.1. Опираясь на общую схему выполнения команды в МП КР580, объясните процесс реализации команды MOV B,H.
7.2. Как работают основные элементы МП при выполнении команды MVI D,F2?
7.3. Как определяется адрес следующей команды при разработке программы в машинных кодах?
7.4. Что такое метки и для каких целей они используются?