Команды ветвления и переходов
Данная группа команд содержит команды переходов, вызова, возврата и повторного запуска (рестарт). Эта группа команд изменяет нормальный (последовательный) ход программы. Она включает команды двух типов: условного и безусловного переходов. Безусловные переходы выполняют операцию, определенную счетчиком команд; условные – проверяют состояние одного из признаков МП для определения целесообразности задаваемого ветвления. В командах условного перехода 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). |