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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: