Главная страница
Случайная страница
КАТЕГОРИИ:
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Команды ветвления и переходов
Данная группа команд содержит команды переходов, вызова, возврата и повторного запуска (рестарт). Эта группа команд изменяет нормальный (последовательный) ход программы. Она включает команды двух типов: условного и безусловного переходов. Безусловные переходы выполняют операцию, определенную счетчиком команд; условные – проверяют состояние одного из признаков МП для определения целесообразности задаваемого ветвления. В командах условного перехода 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
| Нет операций. Не выполняется никаких операций.
|
|