Команды управления (безусловный и условные переходы)
4.1. Команда безусловного перехода
Б1 Б2 Б3 | JMP |
младшие разряды | Адрес перехода |
старшие разряды |
(Счетчик команд РС)←(< Б3>< Б2>)
Пример: JMP 8105h ; (Счетчик команд РС)←8105h
4.2. Команды условных переходов (JM, JNM,JZ, JNZ)
Все команды условного перехода 3-х байтные: в 1-м байте КОП, в 3- м и 2-м байтах команды адрес перехода.
Последовательность выполнения команды условного перехода: если условие КОП выполняется, то в PC заносится адрес перехода из 3-го и 2-ого байтов команды. Если условие КОП не выполняется, то к значению PC прибавляется 3, т.е. МР переходит к выполнению очередной команды.
Команда перехода, если минус:
Б1 Б2 Б3 | JM |
младшие разряды | адрес перехода |
старшие разряды |
(РС)←(< Б3>< Б2>), если S=1
(PC)←(РС)+3, если S=0
Команда перехода, если минус, т.е. если предыдущий результат отрицательный (S=1), то в PC заносится адрес 3- и 2- ого байтов команды и происходит переход по этому адресу. Если условие КОП не выполняется (S=0), то к значению PC прибавляется 3, т.е. МР переходит к выполнению очередной команды.
Пример команды:
Команда перехода, если ноль:
Б1 Б2 Б3 | JZ |
младшие разряды | адрес перехода |
старшие разряды |
(РС)←(< Б3>< Б2>), если Z=1
(PC)←(РС)+3, если Z=0
Команда перехода, если не ноль:
Б1 Б2 Б3 | JNZ |
младшие разряды | адрес перехода |
старшие разряды |
(РС)←(<Б3>< Б2>), если Z=0
(PC)←(РС)+3, если Z=1
Команды ввода и вывода данных.
Ввод и вывод данных организуется двумя способами:
1) Ввод и вывод данных только через аккумулятор. Данный способ обычно используется в восьмиразрядных системах. Он прост в технической реализации МП. В изучаемом нами МП применяется данный способ обмена.
Прямой доступ к памяти (ПДП). Тогда обмен информации между устройствами ввода, вывода и запоминающего устройства может осуществляться напрямую, минуя аккумулятор. Все персональные компьютеры и многие микроконтроллеры используют этот принцип. Он сложен в технической реализации, но обеспечивает большую пропускную способность.
5.1. Команда ввода данных
Б1 Б2 | IN |
Адрес устройства ввода |
(А)←([< Б2>])
Пример команды:
IN INPORT1; (A)←([INPORT1]), где INPORT1символический адрес порта ввода.
5.2. Команда вывода данных
Б1 Б2 | OUT |
Адрес устройства вывода |
([<Б2>])←(A)
OUT OUTPORT2 ; ([OUTPORT2])←(A)
Другие команды
6.1 Команды работы со стеком (стековой памятью).
Стековая память – область ОЗУ, предназначенная для временного хранения данных, в том числе и адресов возврата в основную программу при обращении к подпрограмме.
Обмен со стековой памятью осуществляется только парами регистров (В-С, D-E, H-L, PSW).
Для организации стековой памяти необходимо определить начальный адрес (вершину стека).
Примечание: в некоторых МПС начальный адрес стека определяется автоматически.
Для задания вершины стека используются два варианта команд:
1-ый вариант:
Б1 Б2 Б3 | LXI |
младший разряд | Адрес регист- ровой пары |
старший разряд |
(SР)←(< Б3>< Б2>)
SP – шестнадцатиразрядный указатель стека, т.е. в указателе стека
2-ой вариант:
Б1 | SPHL |
(SP)←(H-L)
Запись содержимого регистровой пары в стековую память:
Команда записи регистровой пары в стековую память
PUSH rr |
где rr – В-C, D-E, H-L, PSW.
Например:
PUSH В; Содержимое пары регистров В-С записывается в стековую память по адресу SP-1 и SP-2. После выполнения команды записи содержимого в стековую память в указателе стека (SP) изменяется адрес стековой памяти (уменьшается его значение на два: SP=SP-2).
Команда чтения содержимого стека в регистровую пару (чтение из стековой памяти)
РОР rr |
где rr – В-C, D-E, H-L, PSW.
По этой команде содержимое стековой памяти (два байта) из ОЗУ записываются в одну из регистровых пар РОН или PSW. После выполнения команды содержимое указателя стека увеличивается на два SP=SP+2.
Например:
РОР B; Содержимое двух ячеек стековой памяти по адресу SP+1 и SP+2 записывается в пару регистров B-C, а указатель вершины стека после выполнения команды принимает значение SP=SP+2.
6.2. Команда обращения к подпрограмме (CALL).