Команды ветвления и переходов
Данная группа команд содержит команды переходов, вызова, возврата и повторного запуска (рестарт). Эта группа команд изменяет нормальный (последовательный) ход программы. Она включает команды двух типов: условного и безусловного переходов. Безусловные переходы выполняют операцию, определенную счетчиком команд; условные – проверяют состояние одного из признаков МП для определения целесообразности задаваемого ветвления. В командах условного перехода 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). |
2.3.5. Команды управления, ввода/вывода и работы со стеком
Команды этой группы выполняют операции помещения в стек и извлечения из него, ввода и вывода данных, обмена данными, разрешения и запрещения прерываний, содержит команды отсутствия операций и останова. В таблице 2.10 приведены команды управления, ввода/вывода и работы со стеком.
Таблица 2.10 Команды управления, ввода/вывода и работы со стеком
Мнемоника команды | Код операции | Количество байтов в команде | Время выполнения команды, циклы | Выполняемые действия |
IN port | 11011011 | 2 | 3 | Ввести данные (A) (port) |
OUT port | 11010011 | 2 | 3 | Вывести данные (port) (A) |
PUSH RP | 11RP0101 | 1 | 3 | Загрузить в стек содержимое пары регистров. M(SP-1) (RH); M(SP-2) ) (RL); (SP) (SP-2). |
PUSH PSW | 11110101 | 1 | 3 | Загрузить в стек содержимое регистра флагов. M(SP-1) (A); M(SP-2) PSW; (SP) (SP-2). |
POP RP | 11RP0001 | 1 | 3 | Считать из стека содержимое пары регистров. (RL) M(SP); (RH) M(SP+1); (SP) ((SP)+2). |
POP PSW | 11110001 | 1 | 3 | Считать из стека содержимое регистра флагов. (PSW) M(SP); (A) M(SP+1)); (SP) (SP)+2). |
XTHL | 11100011 | 1 | 3 | Обмен содержимым верхушки стека и пары регистров HL. (L) « M(SP); (H) « M(SP+1) |
SPHL | 11111001 | 1 | 3 | (SP) (HL). |
EI | 11111011 | 1 | 1 | Разрешение прерываний после выполнения следующей команды. |
DI | 11110011 | 1 | 1 | Запрещение прерываний после выполнения следующей команды. |
HLT | 01110110 | 1 | 1 | Останов. Процессор останавливается. |
NOP | 00000000 | 1 | 1 | Нет операций. Не выполняется никаких операций. |
Дата добавления: 2015-04-25; просмотров: 1192;