Формат команды определяется разрядностью МП. У МП К580, который является 8-ми разрядным, однобайтовые команды имеют формат 8 разрядов, 2-х байтовые -16, 3-х байтовые -24. Команда должна содержать код операции, адрес первого и второго операнда, адрес результата, адрес следующей команды. МП К580 является 8-ми разрядным, поэтому необходимо сократить кол-во данных, содержащихся в коде команды. Один из операндов всегда помещается в аккумулятор, поэтому его адрес не указывается. Результат помещают по адресу одного из операндов, адрес тоже не указывают.
Адрес следующей команды формируется добавлением единицы к содержимому счетчика команд, т.к. команда программы записывается в последовательных ячейках ОЗУ. Код команды должен содержать код операции и адрес 1-го из операндов. Кол-во операций значительно меньше чем кол-во команд. Это объясняется тем, что операнд может быть помещен в РОН, ячейку ОЗУ или содержится в самой команде. В МП К580 используются следующие способы адресации операнда:
1. Прямая, при которой в коде команды указывается номер РОН, содержащего операнд:
|
мнемоника команды |
кодовая комбинация |
выполняемая операция |
|
MOV C, D |
01 001 010 |
C ¬ (D) |
|
ADD D |
10 000 010 |
A ¬ (A)+(D) |
Первая команда — команда пересылки содержимого регистра D в регистр C . Регистры общего назначения: B, C, D, E, H, L, ячейка памяти М и аккумулятор А при обращении к ним имеют номера:
01 — код операции
001 — номер регистра С
010 — номер регистра В
|
B |
000 |
|
C |
001 |
|
D |
010 |
|
E |
011 |
|
H |
100 |
|
L |
101 |
|
M |
110 |
|
A |
111 |
Вторая команда — сложение содержимого регистра D с содержимым аккумулятора и результат помещается в аккумулятор.
10000 — код операции
010 — номер регистра D
2. Непосредственная адресация
Операнд указывается во втором, или во втором и третьем байтах команды.
а. Сложение ADI B1 11 000 110 А ¬ (A)+(B2)
B2 01 001 100 (B2)=4C (16)
б. Пересылка MVID B1 00 010 110 D ¬ (B2)
B2 01 001 110 (B2)=4E (16)
в. Загрузка LXID B1 00 010 011 D ¬ (B3); E ¬ (B2)
B2 01 100 101 (B2)=65 (16)
B3 10 100 101 (B3)=A5 (16)
3. Косвенная адресация
В коде команды указывается номер регистра РОН, содержащего номер ячейки ОЗУ, содержащей операнд :
LDAX B 00 001 010 A ¬ [(BC)]
STAX B 00 000 010 [(BC)] ¬ (A)
