Команды ветвления и переходов

Данная группа команд содержит команды переходов, вызова, возврата и повторного запуска (рестарт). Эта группа команд изменяет нормальный (последовательный) ход программы. Она включает команды двух типов: условного и безусловного переходов. Безусловные переходы выполняют операцию, определенную счетчиком команд; условные – проверяют состояние одного из признаков МП для определения целесообразности задаваемого ветвления. В командах условного перехода 3-разрядный указатель перехода (cnd) задает условие передачи управления по адресу, указанному в команде. Возможны задания восьми вариантов условия перехода: по наличию переноса, отсутствию переноса, нулевому, ненулевому, положительному, отрицательному, четному и нечетному результату. В таблице 2.8 приведены коды условий (cnd), используемых в командах условного перехода, вызова подпрограмм и возврата из них.

Таблица 2.8 Коды условий (cnd)

Код Мнемоника Условия
NZ Не ноль (Z = 0)
Z Ноль (Z = 1)
NC Нет переноса (C = 0)
C Есть перенос (C = 1)
P0 Нечетный результат (P = 0)
PE Четный результат (P = 1)
P Результат положительный (S = 0)
M Результат отрицательный (S = 1)

В таблице 2.9 приведены команды ветвления и переходов.

Таблица 2.9 Команды ветвления и переходов

Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия
JMP addr 11000011 3 3 Ветвление. (PC) (байт3)(байт2).
Jcnd addr 11cnd010 3 5 Условное ветвление. Если (cnd), то (PC) ((байт3)(байт2). Иначе (PC) (PC)+1
CALL addr 11001101 - 3 Вызов подпрограммы. M(SP-1) (PCH), M(SP-2) (PCL), (SP) (SP)-2); (PC) (байт3)байт2).
Ccnd addr 11cnd100 3 5 Если условие выполняется, то действия те же, что и в команде CALL, иначе (PC) (PC)+1
RET 11001001 1 3 Возврат из полпрограммы. M(SP) (PCL); M(SP+1) (PCH); (SP) (SP)+2.
Rcnd 11cnd000 1 3 Условный возврат из подпрограммы. Если условие выполняется, то действия те же, что и в RET, иначе (PC) (PC)+1
RST N 11NNN111 1 3 Рестарт. M(SP)-1) (PCH), M(SP-2) (PCL), (SP) ((SP)-2); (PC) (NNN´8).
PCHL 11101001 1 1 Косвенный переход по адресу, указанному в паре регистров HL. (PCH) (H); (PCL) (L).