Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабРабМПСС / Система команд.doc
Скачиваний:
27
Добавлен:
23.02.2015
Размер:
306.69 Кб
Скачать

А.6.4. Команды перехода

Команды этой группы прерывают последовательное выполнение команд микропроцессора. Ни одна из команд перехода не воздействует на флаги условий.

Существует два типа команд перехода: условные и безусловные. Команды безусловного перехода выполняют лишь специальную операцию над регистром PC (счетчиком команд). Команды условного перехода для определения своего действия проверяют состояние одного из четырех флагов условий. Допустимые в командах этой группы условия могут быть определены следующим образом:

Условия ССС

NZ-не нуль (Z = 0) 000

Z-нуль (Z=l) 001

NC-нет переноса (CY = 0) 010

С-перенос (CY=12' 011

РО-нечетный (Р = 0) 100

РЕ-четный (Р=1) 101

Р-положительный (S = 0) 110

М - отрицательный (S=1) 111

JMP, адрес (безусловный переход)

(PC) ← (байт 3) (байт 2)

Управление передается на команду, адрес которой находится во втором и третьем байтах этой команды.

1

1

0

0

0

0

1

1

Младшие разряды адреса

Старшие разряды адреса

Циклов: 3

Состояний: 10

Адресация: непосредственная

Флаги: не изменяются

J условие, адрес (условный переход)

если (ССС), то (PC) ← (байт 3) (байт 2)

Если указанное условие истинно, то управление передается команде, адрес которой находится во втором и третьем байтах этой команды, в противном случае выполняется команда, следующая за данной.

1

1

С

С

С

0

1

0

Младшие разряды адреса

Старшие разряды адреса

Циклов: 2/3(8085), 3(8080)

Состояний: 7/10(8085), 10(8080)

Адресация: непосредственная

Флаги: не изменяются

CALL, адрес (вызов подпрограммы)

((SP)-1) ← (PCH)

((SP)-2) ← (PCL)

(SP) ← (SP)-2

(PS) ← (байт 3) (байт 2)

Старшие восемь разрядов адреса следующей команды записываются в ячейку памяти, адрес которой на 1 меньше содержимого указателя стека. Младшие восемь разрядов адреса следующей команды записываются в ячейку, адрес которой на 2 меньше содержимого указателя стека. Содержимое регистра SP уменьшается на 2. Управление передается команде, адрес которой находится во втором и третьем байтах этой команды.

1

1

0

0

1

1

0

1

Младшие разряды адреса

Старшие разряды адреса

Циклов: 5

Состояний: 18(8085), 17(8080)

Адресация: непоср./регистр. косвенная

Флаги: не изменяются

С условие, адрес (условный вызов подпрограммы)

если (ССС), то

((SP)-1)←(PCH)

((SP)-2) ← (PCL)

(SP) ← (SP)-2

(PC) ← (байт 3) (байт 2)

Если указываемое условие истинно, то команда исполняется так же, как и команда CALL (см. выше), в противном случае управление передается на следующую за этой команду.

1

1

С

С

С

1

0

0

Младшие разряды адреса

Старшие разряды адреса

Циклов: 2/5(8085), 3/5(8080)

Состояний: 9/18(8085), 11/17(8080)

Адресация: непоср./регистр. косвенная

Флаги: не изменяются

RET (возврат из подпрограммы)

(PCL) ← ((SP))

(PCH) ← ((SP)+1)

(SP) ← (SP) + 2

Содержимое ячейки памяти, адрес которой находится в регистре SP, заносится в младшие разряды регистра PC. Содержимое ячейки памяти, адрес которой на 1 больше содержимого регистра SP, заносится в старшие восемь разрядов регистра PC. Содержимое регистра SP увеличивается на 2.

1

1

0

0

1

0

0

1

Циклов: 3

Состояний: 10

Адресация: регистровая косвенная

Флаги: не изменяются

R условие (условный возврат из подпрограммы) если (ССС), то

(PCL) ← ((SP))

(PCH) ← ((SP)+1)

(SP) ← (SP) + 2

Если указанное условие истинно, то команда исполняется так же, как и команда RET (см. выше), в противном случае управление передается на следующую за этой команду.

1

1

С

С

С

0

0

0

Циклов: 1/3

Состояний: 6/12(8085), 5/11(8080)

Адресация: регистровая косвенная

Флаги: не изменяются

RST n (программное прерывание)

((SP)-1) ← (PCH)

((SP)-2) ← (PCL)

(SF) ← (SP)-2

(PC) ← 8*(NNN)

Старшие восемь разрядов адреса следующей команды записываются в ячейку памяти, адрес которой на 1 меньше содержимого указателя стека. Младшие восемь разрядов адреса следующей команды записываются в ячейку, адрес которой на 2 меньше содержимое SР уменьшается на 2. Управление передается команде, адрес которой определяется как NNN*8.

1

1

N

N

N

1

1

1

Циклов: 3

Состояний: 12(8085), 11(8080)

Адресация: регистровая косвенная

Флаги: не изменяются

Счетчик адреса после выполнения команды:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0

0

0

0

0

0

0

0

0

0

N

N

N

0

0

0

PCHL (переход по регистрам Н и L косвенный - занесение регистровой пары H-L в регистр PC)

(РСН) ← (Н)

(PCL) ← (L)

Содержимое регистра Н заносится в старшие восемь разрядов регистра PC. Содержимое регистра L заносится в младшие восемь разрядов регистра PC.

1

1

1

0

1

0

0

1

Циклов: 1

Состояний: 6(8085), 5(8080)

Адресация: регистровая

Флаги: не изменяются

Соседние файлы в папке ЛабРабМПСС