Команды управления (безусловный и условные переходы)

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).