Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Приложения / AppIntel8080.doc
Скачиваний:
63
Добавлен:
20.06.2014
Размер:
441.86 Кб
Скачать

Логические команды

Количество, влияние на флаги

Всего в группе логических команд 43 команды. Как правило, логические команды влияют на флаги в соответствии с результатом операции.

Команды логических операций и сравнения

Логические операции (И, ИЛИ, Искл. ИЛИ) и операции сравнения над семью регистрами, ячейкой памяти и непосредственными данными (второй операнд) и содержимым аккумулятора (первый операнд).

ANA r(M)

ANI data

ORA r(M)

ORI data

XRA r(M)

XRI data

CMP r(M)

CPI data

1

i

1

f

n

a

a

a

Здесь

i — непосредственная адресация (i=1);

fn — функция (function):

00 — AND (И);

01 — XOR (Искл. ИЛИ);

10 — OR (ИЛИ);

11 — CMP (сравнение);

aaa — аргумент (один из семи регистров или ячейка памяти);

Прим. При i=1 aaa=110.

Всего 36 команд. Команды влияют на все флаги в зависимости от результата операции, за исключением команд логических операций. Команды ИЛИ и Искл. ИЛИ сбрасывают индикаторы переноса и вспомогательного переноса в ноль, а при выполнении команды И индикатор переноса сбрасывается, а состояние вспомогательного переноса не определено.

Команды сдвига

Циклические сдвиги влево / вправо, с переносом / без переноса:

RLC — циклический сдвиг содержимого аккумулятора влево;

RRC — циклический сдвиг содержимого аккумулятора вправо;

RAL — циклический сдвиг содержимого аккумулятора влево через флаг переноса;

RAR — циклический сдвиг содержимого аккумулятора вправо через флаг переноса.

Всего 4 команды. Влияют только на флаг переноса.

0

0

0

c

r

1

1

1

Здесь

с — перенос (carry): c = 1 — сдвиг через перенос;

r — вправо (right): r = 1 — сдвиг вправо, r = 0 — сдвиг влево.

Команды инвертирования и установки

Инвертирование аккумулятора, установка переноса и инвертирование переноса. 3 команды:

CMA

STC

CMC

0

0

1

f

n

1

1

1

Здесь

fn — функция:

01 — CMA

10 — STC

11 — CMC

Команда CMA не влияет на флаги, STC устанавливает флаг переноса в 1, CMC инвертирует флаг переноса.

Команды передачи управления

Количество, влияние на флаги

Всего в группе команд передачи управления 36 команд. Никакие из них не влияют на флаги.

Команды перехода

Условные и безусловный переходы:

JMP addr — безусловный переход (КОП — С3h)

Jcnd addr — условный переход (cnd — условие)

Условия формируют четыре флага: S, Z, P, C.

Т. о., всего получается 9 команд. Размер всех команд этой подгруппы — три байта. Первый байт — КОП, второй и третий — адрес перехода.

1

1

c

n

d

0

1

0

Здесь

cnd — condition (условие):

000 — NZ (не ноль);

001 — Z (ноль);

010 — NC (нет переноса);

011 — C (перенос);

100 — PO (нечётный паритет);

101 — PE (чётный паритет);

110 — P (плюс);

111 — M (минус).

Команды вызова подпрограммы

Вызовы подпрограммы безусловный и по восьми условиям:

CALL addr (КОП — СDh)

Ccnd addr

Всего 9 команд.

1

1

c

n

d

1

0

0

Команды возврата из подпрограммы

Возвраты безусловный и по восьми условиям:

RET (КОП — С9h)

Rcnd

Всего 9 команд.

1

1

c

n

d

0

0

0

Команды повторного запуска (рестарта)

RST N

где N = 0,…,7 — номер рестарта.

Как и команда CALL, команда рестарта помещает в стек содержимое счетчика команд и выполняет переход по определенному адресу. Разница состоит в том, как определяется этот адрес. В команде CALL адрес перехода определен непосредственно во втором и третьем байтах команды. В команде RST адрес перехода определяется умножением номера рестарта (биты 5, 4 и 3 кода операции) на восемь. Например, КОП команды RST 2 — 1101 0111 (D7H). Номер рестарта 010 (210) умножается на 8, что даёт 1610 или 10h. Получается выигрыш в размере команды — команды рестарта однобайтные.

Рестарты аналогичны программным прерываниям процессоров x86.

Всего в этой подгруппе 8 команд.

1

1

N

N

N

1

1

1

Здесь NNN — номер рестарта.

Команда RST 7 имеет КОП FFh — все единички, что дает возможность реализовать аппаратное прерывание с помощью этой команды простыми средствами, не используя контроллер прерываний.

Команда PCHL

Помещает в регистр PC (счётчик команд) содержимое пары HL:

(PC)(HL).

КОП — Е9h

Соседние файлы в папке Приложения