ЦЕЛЬ РАБОТЫ – изучить способы адресации.
Метод задания операнда в команде называется способом адресации.
В микропроцессоре К580ИК80А используется пять способов адресации: прямая, непосредственная, неявная, регистровая и косвенная.
Прямая адресация. Команды прямой адресации имеют трехбайтный формат: первый байт содержит код операции, второй младший байт адреса, третий старший байт адреса. Адрес указывает местоположение данных в памяти микропроцессора. Например, команда LDA 0A00H- пересылает данные из ячейки памяти 0А00Н в аккумулятор. В памяти программ микропроцессора эта команда занимает три последовательных ячейки: первая - код операции 3А, вторая – младший байт адреса, третья – старший байт адреса 0А.
Непосредственная адресация. Команды непосредственной адресации имеют двух байтный формат: первый байт содержит код операции, второй – данные. Например, команда MVI A,99 – записывает в аккумулятор шестнадцатеричное число 99. В памяти программ микропроцессора эта команда занимает две последовательные ячейки: первая – код операции 3Е, вторая -шестнадцатеричное число 99.
Неявная адресация. Команды неявной адресации имеют однобайтный формат – в этом байте содержится только код операции, указывающий на то, какие данные должны участвовать в обработке. При этой адресации в команде как адрес обрабатываемых данных, так и непосредственные данные. По коду команды микропроцессор обрабатывает данные, находящиеся в одном из регистров общего назначения или во флаговом регистре. Например команда STC – устанавливает признак переноса в 1. В памяти программ микропроцессора эта команда занимает одну ячейку, в которой записан код операции 37.
Регистровая адресация. Команды регистровой адресации имеют однобайтный формат. В этом байте содержатся код операции и адрес регистра - источника, в котором находятся данные. Регистром – источником данных является один из РОН. Эти команды используются при выполнении арифметических и логических операций. Характер выполняемых действий указан в коде операции. При выполнении арифметических и логических операций микропроцессор выполняет действия над двумя операндами. Как отмечалось, один из этих операндов находится в РОН, а второй - обязательно помещен в аккумулятор (регистр А). Результат выполнения операции также помещается в аккумулятор. Например, команда ANA B – выполняет поразрядную логическую операцию ИЛИ над содержимым аккумулятора и данными, находящимися в регистре В. В памяти программ микропроцессора эта команда занимает одну ячейку, в которой записан ее код – А0. При выполнении команд пересылок при регистровой адресации в команде помимо кода операции указывается регистр - приемник и регистр - источник (оба они относятся к РОН). По команде пересылки данные из регистра – источника пересылаются в регистр – приемник. Например, команда MOV B,C – пересылает данные из регистра С в регистр В, ее код – 41.
Косвенная регистровая адресация. Команды косвенной регистровой адресации имеют однобайтный формат – в этом байте содержится только код адресации, указывающий, какие действия выполняются над данными, адрес расположения которых содержится в одной из регистровых пар РОН. По этой команде микропроцессор извлекает из заданной регистровой пары РОН шестнадцатеричный адрес, обращается по нему к ячейке памяти, из которой считывает данные и выполняет над ними действия, указанные в коде операции. Например, команда ADD M – складывает содержимое ячейки памяти, адрес которой находится в регистровой паре HL с содержимым аккумулятора, результат вычислений помещается в аккумулятор. В памяти программ микропроцессора эта команда занимает одну ячейку памяти, в которой записан ее код – 86.
Команды прямой адресации занимают много места в памяти программ (3 байта), а на их выполнение микропроцессором затрачивается много времени из – за многократных обращений к ячейкам памяти для считывания кода операции и данных. Поэтому стремятся использовать команды с другими способами адресации. Однако следует учитывать, что в командах регистровой и косвенной регистровой адресациях требуется предварительная загрузка в регистры РОН данных или адреса, где они расположены.
В программе 2.1, исследованной в лабораторной работе 2, использована прямая адресация. Изучение непосредственной и косвенной адресации проводится соответственно программам 3.1 (таблица 3.1) и 3.2 (таблица 3.2), записанным в мнемокодах.
Таблица 3.1
Метка Мнемокод Операнд Комментарий
MVI A, D8H
CMA
STA 0A01H
RST 7
Таблица 3.2
Метка Мнемокод Операнд Комментарий
LXI H, 0A00H
MOV A,M
CMA
INX M
MOV M,A
RST 7
Задания к лабораторной работе.
1. Изучить способы адресации команд микропроцессора.
2. Исследовать работу программ с непосредственной и косвенной адресациями (программы 3.1 и 3.2.)
3. Исследовать работу программ 3.3 (таблица 3.3).
Метка Мнемокод Операнд Способ адресации Комментарий
MVI A, 09H
MVI B, 10H
MOV C, A
MOV D, B
MOV H, C
MOV L, D
MOV M, A
RST 7
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1.1 Разобрать работу программы 3.1.
1.2 Заполнить графу «Комментарий» таблицы 3.1.
1.3 Записать программу 3.1 в машинных кодах – таблица 3.4 (аналогична таблице 2.2)
1.4 Разобрать работу программы 3.2.
1.5 Заполнить графу «Комментарий» таблицы 3.2
1.6 Записать программу 3.2 в машинных кодах (таблица 3.5)
2.1 Запустить программу «Монитор».
2.2 Ввести программу 3.1. в ОЗУ с адреса 0810
2.3 Выполнить программу 3.1 в режиме пользователя.
2.4 Проверить результаты выполнения программы 3.1. Результат занести в таблицу 3.6 (аналогично таблице 2.4).
2.5 Выполнить аналогичные действия по пунктам 2.2…2.4 для программы 3.2.
3.1 Разобрать работу программы 3.3.
3.2 Заполнить графы «Способ адресации» и «Комментарий» таблицы 3.3.
3.3 Записать программу 3.3 в машинных кодах (таблица 3.7)
3.4 Выполнить аналогичные действия по пунктам 2.2 … 2.4 для программы 3.3.
3.5 Выключить компьютер.
ОТЧЕТ по работе должен содержать: тексты всех программ 3.1, 3.2, 3.3 в мнемокодах и машинных кодах – таблица 3.5 … 3.7.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. В каком способе адресации операнд следует за кодом операции?
2. В каком способе адресации указывается адрес операнда после кода адресации?
3. Какой способ адресации используется в командах межрегистровых пересылок?
4. В каком способе адресации адрес операнда указывается в регистровой паре?
5. Укажите различия в способах адресации, используемых в микропроцессоре К580.
6. Какие недостатки характерны для прямой адресации?
7. Каковы особенности применения косвенной адресации?
8. Укажите все возможные способы адресации, которые можно использовать при модификации программы 2.1.
9. Как определяется операнд, задаваемый символическим адресом «М»