Представление команд в числовой форме
Команды хранятся в основной памяти микро-ЭВМ в виде двоичных чисел. Каждая команда процессора состоит из однобайтного кода операции и возможных, в зависимости от формата, дополнительных одного или двух байтов. Типы форматов команд представлены в табл. 1.1.
Таблица 1.1
Форматы команд
Адрес | Биты байта | Обозн | Назначение байта |
Формат однобайтной команды | |||
Adr | D7...0 | B1 | Код операции |
Формат двухбайтной команды | |||
Adr | D7..0 | B1 | Код операции |
Adr+1 | D7..0 | B2 | Байт данных или адреса |
Формат трёхбайтной команды | |||
Adr | D7..0 | B1 | Код операции |
Adr+1 | D7..0 | B2 | Младший байт числа данных или адреса |
Adr+2 | D7..0 | B3 | Старший байт числа данных или адреса |
В коде операции 8-битной двоичной комбинацией определяются действия процессора, предписываемые командой. Кроме того, в некоторых кодах операций указываются также операнды, с которыми должны выполняться действия. Делается это через указание на регистры процессора, содержащие операнд или его адрес согласно табл. 1.2.
Таблица 1.2
Кодирование регистров в коде операции
Регистр или память M(HL) | ||
Имя | Код | Номер |
B | 0 0 0 | |
C | 0 0 1 | |
D | 0 1 0 | |
E | 0 1 1 | |
H | 1 0 0 | |
L | 1 0 1 | |
M(HL) | 1 1 0 | |
A | 1 1 1 |
Пример1.1.
Адрес Число Комментарий
0800 78 ;однобайтная команда, выполняющая
;пересылку в аккумулятор из регистра B
В двоичной форме код операции выглядит так
D7 D6 D5 D4 D3 D2 D1 D0
0 1 1 1 1 0 0 0
Находящиеся в составе данного кода операции биты D7, D6 кодируют действия команды; биты D5..3 кодируют операнд-приёмник – регистр A; биты D2..0 кодируют операнд-источник – регистр B.
Пример1.2.
Адрес Число Комментарий
0801 06 ; двухбайтная команда, выполняющая
0802 4C ; пересылку в регистр B числа 4C (2й байт команды)
В двоичной форме код операции выглядит так
D7 D6 D5 D4 D3 D2 D1 D0
0 1 1 1 1 0 0 0
Находящиеся в составе данного кода операции биты D7, D6 кодируют действия команды; биты D5..3 кодируют операнд-приёмник – регистр B; биты D2..0 кодируют операнд источника – 2-й байт команды.
Пример1.3.
Адрес Число Комментарий
0803 D3 ;двухбайтная команда, выполняющая вывод байта из
0804 … F0 ;аккумулятора в порт с адресом F0, являющимся 2-м байтом
; команды
В двоичной форме код операции выглядит так
D7 D6 D5 D4 D3 D2 D1 D0
1 1 0 1 0 0 1 1
Все биты находящиеся в составе данного кода операции кодируют действия команды.
Пример1.4.
Адрес Число Комментарий
0805 21 ;трёхбайтная команда, выполняющая пересылку
0806 …00 ; в регистровую пару HL
0807 …0B ; двухбайтного числа 0B00
В двоичной форме код операции выглядит так
D7 D6 D5 D4 D3 D2 D1 D0
0 0 1 0 0 0 0 1
Биты D5..4 кодируют операнд-приёмник – регистровую пару HL; остальные биты кодируют действия команды.
Пример1.5.
Адрес Число Комментарий
0808 3A ;трёхбайтная команда, выполняющая пересылку
0809 …01 ;в аккумулятор операнда из ячейки памяти
080A …0B ;с адресом 0B01 размещённым прямо в команде
0809 …01 ;в аккумулятор операнда из ячейки памяти
080A …0B ;с адресом 0B01 размещённым прямо в команде
Поскольку код операции всегда является первым байтом команд, постольку его ещё часто называют кодом команды.
Многобайтные числа в составе команды или в составе данных хранятся согласно следующему правилу.
Байты числа размещаются в последовательно расположенных ячейках памяти (адреса ячеек последовательно увеличиваются), причём сначала в младших адресах размещаются младшие байты, а затем в более старших адресах – более старшие байты числа. Адресом числа называют адрес самого младшего байта этого числа.
Например, трёхбайтное число 126A38 должно хранится в памяти по адресу 0B00 следующим образом:
0B00 38
0B01 6A
0B02 12
Представленная таким образом программа будет являться программой на языке машинных команд, поскольку такие команды могут быть непосредственно транслированы аппаратными средствами процессора.