Представление команд в числовой форме

Команды хранятся в основной памяти микро-ЭВМ в виде двоичных чисел. Каждая команда процессора состоит из однобайтного кода операции и возможных, в зависимости от формата, дополнительных одного или двух байтов. Типы форматов команд представлены в табл. 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

Представленная таким образом программа будет являться программой на языке машинных команд, поскольку такие команды могут быть непосредственно транслированы аппаратными средствами процессора.