Команда должна содержать указания: о виде операции, об адресах источников и приёмнике операндов. Различают несколько способов адресации.
Прямая адресация.Адресом операнда является указанный в коде операции адрес регистра МП (см. рисунок 1.3). Адреса регистров приведены в таблице. М – это ячейка оперативной памяти, адресом которой служит содержимое пары регистров Н L.
Таблица 1.1 – Адреса регистров при прямой адресации
Регистр
В
С
D
Е
Н
L
М
А
Адрес регистра
Примеры команд с прямой адресацией.
В кодовой комбинации команды 01 001 010 два старших разряда (01) определяют вид операции (пересылка содержимого одного регистра в другой). В разрядах 6, 5, 4 (001) и 3, 2, 1 (010) указаны адреса регистров С и D. По этой команде содержимое регистра D пересылается в регистр С.
В команде 10 000 010 в разрядах 8, 7, 6, 5, 4 (10000) указан код операции (суммирование), в разрядах 3, 2, 1 указан адрес источника операндов (регистр D). При выполнении операции суммирования источником другого операнда и приёмником результата является аккумулятор (регистр А).
Непосредственная адресация.При этом способе адресации операнды (один или два) задаются непосредственно в команде вслед за кодом операции во втором или во
втором и третьем байтах.
Примеры команд с непосредственной кадресацией.
1. АDI В1 11 000 110 А ← (А) + <В2>
В2 01 001 100
По команде АDI суммируется содержимое аккумулятора с содержимым второго байта команды (01 001 100).
2. МVI D В1 00 010 110 D ← <В2>
В2 01 001 110
По команде МVI содержимое второго байта команды (01 001 110) пересылается в регистр D, адрес которого (010) приведён в разрядах 6, 5, 4 первого байта команды.
3. LХI D В1 00 010 001 D ← <В3>; E ← <В2>
В2 01 100 101
B3 10 100 101
По команде LХI содержимое второго и третьего байтов команды пересылается, соответственно, в младший и старший регистры пары регистров DЕ. Пара регистров DЕ указана адресом (010) первого из них в разрядах 6, 5, 4 первого байта команды.
Косвенная адресация.При этом способе адресации в команде отмечается пара регистров общего назначения РОН(указанием первого из них), содержимое которой служит адресом, по которому в ОП находится операнд.
Примеры команд с косвенной адресаций.
1. LDAX B 00 001 010 A ← [(BC)]
По команде LDAX В в аккумулятор загружается содержимое ячейки ОП, адресом которой служит содержимое пары регистров ВС (эта пара указывается адресом регистра С (001), в разрядах 6, 5, 4).
2. STAX B 00 000 010 [(BC)] ← (A)
По команде STAX В содержимое аккумулятора запоминается в ячейке, адресом которой служит содержимое пары регистров ВС ((эта пара указывается адресом регистра В (000), в разрядах 6, 5, 4).