Список выполненных команд ассемблера и их описание, страница 2

Из содержимого регистра А вычитаются данные, размещенные в памяти по адресу, определяемому в результате кон- катенации содержимого регистров Н и L.

STC (set carry) - установить признак переноса.

Формат команды:     0010111

(C)<-1.

ANA r (AND register) — логическое И с регистром.

Формат команды:       10100SSS

(А)<-(А)*(r)

C<==>AC<-0

Команда реализует поразрядное булево умножение над байтами, которые хранятся в регистрах блока РОН. При этом признак переноса как и признак вспомогательного переноса, приобретает значение нуль.

ORA r (OR register) — логическое ИЛИ с регистром.

Формат команды:       10110SSS

(А)<-(А) ИЛИ (r)

C<==>AC<-0

Команда реализует  поразрядное булево  ИЛИ  над байтами, которые хранятся в регистрах блока РОН. При этом признак переноса как и признак вспомогательного переноса, приобретает значение нуль.

J condition addr (conditional jump) — перейти по    условию.

Формат команды:   11ССС01О, low addr,  high addr

if(CCC) then (PC)<-(byte 3)(byte 2) else (PC)<-(PC)+i

Если заданное полем CCC команды условие реализуется,  то управление передается команде, адрес которой в памяти определяется как конкатенация второго и третьего байтов команды. Команда условного перехода JUMP IF тиражируется кодированием условий перехода в поле CCC. В МП 8080 имеет место следующий набор команд условного перехода:

JC (jump on carry) — переход по переполнению - ССС<-С=1;

JNC (jump on no carry) —переход по отсутствию переполнения - ССС<-С=0;

JZ (jump on zero) — переход по нулевому результату - ССС<-Z=0;

JNZ (jump on no zero) —переход по ненулевому результату - ССС<-Z=1;

JP (jump on positive) — переход по положительному результату - ССС<-S=0;

JM (jump on minus) — переход по отрицательному результату - ССС<-S=1;

JPE (jump on parity even) — переход по четному результату - ССС<-P=1;

JPO (jump on parity odd) - пepexoд по нечетному результату - ССС<-P=0;

Команды JUMP IF не влияют на содержимое аккумулятора, регистров признака и состояния МП, а оперируют только со  счетчиком команд PC. При выполнении сданного в поле CCC условия (проверяется по значению соответствующего разряда в регистре признаков) команда JUMP IF загружает в PC  альтернативный адрес (адрес перехода). Если заданное в поле CCC условие не реализуется, МП переходит к выполнению команды, адрес которой определяется путем прибавления 1 к содержимому счетчика команд, т. е. (PC)<—(PC) + 1.

PCHL (jump H and L indirect—move H and L to PC) — безусловно перейти по косвенному адресу. Формат команды:       11101001

(РСН)<-(Н)

(PCL)<-(L).

Содержимое регистра H помещается в старшие разряды  счетчика команд, а регистра L - в младшие разряды счетчика команд. Содержимое регистров H и L не изменяется. Команда используется для реализации процедуры перехода  по косвенному адресу JUMP INDIRECT.

CALL addr (call) — вызвать.

Формат команды:    11001101, low addr,  high addr

((SP)-l)<-(PCH)

((SP)-2)<-(PCL)

(SP)<-(SP)—2

(PC)<-(byte 3)(byte 2).

По команде CALL старший полуадрес следующей команды из  счетчика команд PC загружается в стек, т.е. заносится в  ячейку памяти, адрес которой уменьшен на 1 относительно содержимого регистра-указателя стека SP. Младший полуадрес из счетчика команд PC засылается в ячейку памяти по адресу, уменьшенному на 2 относительно исходного содержимого регистра SP. Управление передается команде, адрес которой  определяется в результате конкатенации в программном счетчике содержимого второго и третьего байтов команды.