Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
56_T5V.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
651.78 Кб
Скачать

Команды сравнения Общая характеристика

Команды сравнения генерируют все флаги. Используют три способа адресации: регистровый, непосредственный, косвенно-регистровый. Содержимое аккумулятора не изменяется. Бывают одно и двух байтные. Результатом выполнения команд сравнения является генерация флагов результата.

Код

операции

Название

Флаги

Байт

Содержание

команды

CMP R

Сравнение А и R

все

1

при (А) = (R) FZ=1

при (А)  (R) FC=1

CMP M

Сравнение А и ячейки памяти

все

1

при (А) = (HL) FZ=1 при (А)(HL) FC=1

CPI Б2

Сравнение А и второго байта команды

все

2

при (А) = (Б2) FZ=1;

при (А)  (Б2) FC=1;

Команды сдвига Общая характеристика

Позволяют по определённым правилам сдвинуть содержимое аккумулятора на один разряд вправо или влево. Все команды имеют длину один байт. Используют регистровый способ адресации. Генерируют флаг С.

Код

операции

Название

Флаги

Байт

Содержание

команды

RLC

Сдвиг влево циклический

C

1

(An)(An-1)

(A0)(A7)

(FC)(A7)

RRC

Сдвиг вправо циклический

C

1

(An)(An-1)

(A7)(A0)

(A7)(FC)

RАL

Сдвиг влево циклический с переносом

C

1

(An)(An-1)

(FC)(A7)

(A0)(FC)

RАR

Сдвиг вправо циклический с переносом

C

1

(An)(An-1)

(FC)(A7)

(A0)(FC)

Например: MVI A, 01H ; число 01 (0000 0001) в аккумулятор

RLC ; сдвиг влево, получается (0000 0010) 02

HLT

Сдвиг влево увеличивает число в аккумуляторе в два раза.

Например MVI A, 03 H ; число 03 (0000 0011) в аккумулятор

RRC ; сдвиг вправо, получается (0000 0001) 01

HLT

Сдвиг вправо уменьшает содержимое аккумулятора в два раза, при этом может возникнуть ошибка “весом”в единицу младшего разряда.

К оманда RRC

Команда RLC

Команда RАR

Команда RАL

КОМАНДЫ СТЕКА

Общая характеристика

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

Код

операции

Название

Флаги

Байт

Содержание

команды

PUSH B

Ввод содержимого В,С в стек

нет

1

(B,C)(стек)

PUSH D

Ввод содержимого D,E в стек

нет

1

(D,E)(стек)

PUSH H

Ввод содержимого H,L в стек

нет

1

(H,L)(стек)

PUSH PSW

Ввод содержимого A,F в стек

нет

1

(A,F)(стек)

POP B

Вывод содержимого стека в В,С

нет

1

(стек)( B,C)

POP D

Вывод содержимого стека в D,E

нет

1

(стек)( D,E)

POP H

Вывод содержимого стека в H,L

нет

1

(стек)( H,L)

POP PSW

Вывод содержимого стека в A,F

нет

1

(стек)( A,F)

Например:

K2: PUSH PSW; сохранение содержимого регистров А и F в стеке

PUSH H; сохранение содержимого регистров HL в стеке

PUSH D; сохранение содержимого регистров DE в стеке

PUSH B; сохранение содержимого регистров BC в стеке

(текст подпрограммы)

POP B; восстановление содержимого регистров B и C из стека

POP D; восстановление содержимого регистров D и E из стека

POP H; восстановление содержимого регистров H и L из стека

POP PSW; восстановление содержимого регистров А и F из стека

RET ; выход из подпрограммы

Обратить внимание па порядок сохранения и восстановления содержимого регистров (первым сохранили, последним восстановили).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]