Для групп 0903ПК и 0904ПК
Преподаватель: Драгунов С.С.
Тема 7. - Способы адресации
Введение
На прошлом занятии мы с вами рассмотрели программу сложения трех чисел. В той программе мы использовали:
Команду пересылки данных:
MVI A – M o ve I mmediate A ccumulator - «Переместить в регистр A непосредственно следующие данные из второго байта <B2>, где A – особый регистр, называемый Аккумулятор.
Команду сложения:
ADD B – < A > + < B > à < A >, что означает: «Сложить содержимое Аккумулятора с содержимым регистра B и сумму поместить в Аккумулятор».
Команду остановки микропроцессора:
HLT – H a lt – Остановка микропроцессора.
Рассмотрим более подробно структуру команды ADD B
Команда ADD B выполняет сложение первого операнда, который находится в аккумуляторе < A >, со вторым операндом, который находится в регистре общего назначения < B >, и помещает результат сложения (сумму) обратно в аккумулятор < A >. В таблице команд эта команда находится в 8 строке и 0 столбце, поэтому ее код операции 80.
|
|
Для того чтобы понять, где же у этой команды находится операнд, рассмотри ее структуру, представленную на рисунке 1. Если перевести шестнадцатеричный код 80h в двоичную систему получим 1000 0000b. Теперь можно выделить код операции, это будет - 10000b. Следовательно, под операнд остаются три нуля, которые являются ссылкой на регистр общего назначения < B >.
Рисунок 1
Если в качестве операнда выступает ссылка на то, в каком регистре общего назначения находится операнд, такой способ адресации называется регистровым.
Характерный признак такой команды, после мнемоники ставится пробел, и после пробела записывают регистр общего назначения (РОН)
Рассмотрим более подробно структуру команды MVI A.
Команда размещается в двух байтах, и ее структура представлена на рисунке 2.
Рисунок 2
В первом байте находится код операции (сокращенно - КОП), который определяет, какие действия должна выполнить команда. На алгоритмическом языке Ассемблер код операции записывается в виде мнемоники – MVI A, а при переводе на язык машины в шестнадцатеричной системе счисления это будет – 3Е.
Во втором байте записываются непосредственно те данные, которые необходимо загрузить (передвинуть - M O V E) в аккумулятор <A>. При программировании на Ассемблере эти данные принято записывать либо в шестнадцатеричной, либо в двоичной системе счисления. При записи в шестнадцатеричной системе счисления можно просто записать две шестнадцатеричные цифры или еще в конце добавить букву h. При записи в двоичной системе счисления необходимо записать 8 цифр (0 или 1) и добавить букву b.
|
|
Такой способ адресации, когда после кода операции идут непосредственно поступающие на обработку данные, называется непосредственным способом адресации.
В этом случае в конце мнемоники обычно стоит буква I от слова I mmediate (непосредственный или немедленный). Такой способ адресации используется для работы с константами.
У нашего микропроцессора шина адреса – 16 бит или два байта. Поэтому если в регистрах надо записать какой-то адрес, для этого необходимо выделить два регистра. Поэтому регистры объединяются в пары.
На структурной схемы, представленной на рисунке 3 показаны 4 регистровые пары: <BC>, <DE> и <HL>. Регистровая пара <ZW> предназначена для специальных целей и недоступна программисту.