Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект, часть 4 (05.10.10), чистовик.doc
Скачиваний:
28
Добавлен:
29.04.2019
Размер:
15.45 Mб
Скачать

Система команд мп к1821вм85а

Команды МП приведены в таблице 5. В первой графе таблицы даны мнемокоды команд с обозначениями регистров через r, пар регистров через rp, ячеек памяти через M, третьего и второго байтов команды через b3b2, адресов ВУ через port. Ссылки на ячейки памяти M подразумевают косвенную регистровую адресацию: адреса этих ячеек берутся из регистровой пары H (регистров H и L) и, следовательно, не нуждаются в указании в самой команде.

Таблица 5 – Система команд МП К1821ВМ85А

Мнемокод

Код

Флажки

Число

Содержание

байтов

тактов

циклов

1

2

3

4

5

6

7

Команды пересылки

MOV r1r2

01ПППИИИ

1

4

1

Пересылка из регистра r2 в регистр r1

MOV Mr

01110ИИИ

1

7

2

Пересылка из регистра в память

MOV rM

01ППП110

1

7

2

Пересылка из памяти в регистр

MVI rb2

00ППП110

2

7

2

Пересылка непосредственных данных в регистр

Продолжение таблицы 5

Мнемокод

Код

Флажки

Число

Содержание

байтов

тактов

циклов

1

2

3

4

5

6

7

Команды пересылки

MVI Mb2

36

2

10

3

Пересылка непосредственных данных в память

LXI rp,b3b2

00ПР0001

3

10

3

Загрузка непосредственных данных в пару регистров

LDA b3b2

3A

3

13

4

Прямая загрузка аккумулятора

STA b3b2

32

3

13

4

Прямая запись аккумулятора в память

LHLD b3b2

2A

3

16

5

Прямая загрузка пары регистров H

SHLD b3b2

22

3

16

5

Прямая загрузка пары регистров H в память

LDAX rp

00ПР1010

1

7

2

Косвенная загрузка аккумулятора посредством пары регистров B или D

STAX rp

00ПР0010

1

7

2

Косвенная запись аккумулятора в память посредством пары регистров B или D

XCHG

EB

1

4

1

Обмен между парами регистров H и D

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

ADD r

10000ИИИ

+

1

4

1

Сложение регистра и аккумулятора

ADD M

86

+

1

7

2

Сложение памяти и аккумулятора

ADI b2

C6

+

2

7

2

Сложение непосредственных данных и аккумулятора

ADC r

10001ИИИ

+

1

4

1

Сложение регистра и аккумулятора с переносом

Продолжение таблицы 5

Мнемокод

Код

Флажки

Число

Содержание

байтов

тактов

циклов

1

2

3

4

5

6

7

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

ADC M

8E

+

1

7

2

Сложение памяти и аккумулятора с переносом

ACI b2

CE

+

2

7

2

Сложение непосредственных данных и аккумулятора с переносом

SUB r

10010ИИИ

+

1

4

1

Вычитание регистра из аккумулятора

SUB M

96

+

1

7

2

Вычитание памяти из аккумулятора

SUI b2

D6

+

2

7

2

Вычитание непосредственных данных из аккумулятора

SBB r

10011ИИИ

+

1

4

1

Вычитание регистра из аккумулятора с заемом

SBB M

9E

+

1

7

2

Вычитание памяти из аккумулятора с заемом

SBI b2

DE

+

2

7

2

Вычитание непосредственных данных из аккумулятора с заемом

INR r

00ППП100

(+)

1

4

1

Инкремент регистра

INR M

34

(+)

1

10

3

Инкремент памяти

DCR r

00ППП101

(+)

1

4

1

Декремент регистра

DCR M

35

(+)

1

10

3

Декремент памяти

INX rp

00ПР0011

1

6

1

Инкремент пары регистров

DCX rp

00ПР1011

1

6

1

Декремент пары регистров

DAD rp

00ПР1001

C

1

10

3

Сложение регистровой пары H с регистровой парой

Продолжение таблицы 5

Мнемокод

Код

Флажки

Число

Содержание

байтов

тактов

циклов

1

2

3

4

5

6

7

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

DAA

27

+

1

4

1

Преобразование аккумулятора в двоично-десятичный код

ANA r

10100ИИИ

+

1

4

1

Логическое И регистра и аккумулятора

ANA M

A6

+

1

7

2

Логическое И памяти и аккумулятора

ANI b2

E6

+

2

7

2

Логическое И непосредственных данных и аккумулятора

XRA r

10101ИИИ

+

1

4

1

Исключающее ИЛИ регистра и аккумулятора

XRA M

AE

+

1

7

2

Исключающее ИЛИ памяти и аккумулятора

XRI b2

EE

+

2

7

2

Исключающее ИЛИ непосредственных данных и аккумулятора

ORA r

10110ИИИ

+

1

4

1

Логическое ИЛИ регистра и аккумулятора

ORA M

B6

+

1

7

2

Логическое ИЛИ памяти и аккумулятора

ORI b2

F6

+

2

7

2

Логическое ИЛИ непосредственных данных и аккумулятора

CMP r

10111ИИИ

+

1

4

1

Сравнение регистра и аккумулятора

CMP M

BE

+

1

7

2

Сравнение памяти и аккумулятора

Продолжение таблицы 5

Мнемокод

Код

Флажки

Число

Содержание

байтов

тактов

циклов

1

2

3

4

5

6

7

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

CPI b2

FE

+

2

7

2

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

CMA

2F

1

4

1

Инвертирование аккумулятора

STC

37

C

1

4

1

Установка флажка переноса

CMC

3F

C

1

4

1

Инвертирование флажка переноса

RLC

07

C

1

4

1

Циклический сдвиг аккумулятора влево

RRC

0F

C

1

4

1

Циклический сдвиг аккумулятора вправо

RAL

17

C

1

4

1

Циклический сдвиг аккумулятора влево через разряд переноса

RAR

1F

C

1

4

1

Циклический сдвиг аккумулятора вправо через разряд переноса

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

JMP b3b2

C3

3

10

3

Безусловный переход

Jусл b3b2

11УУУ010

3

10

3

Условный переход

CALL b3b2

CD

3

18

5

Безусловный вызов подпрограммы

Cусл b3b2

11УУУ100

3

11/18

3/5

Условный вызов подпрограммы

RET

C9

1

10

3

Возврат

Rусл

11УУУ000

1

5/11

1/3

Возврат при условии

RST n

11nnn111

1

11

3

Повторный запуск

SPHL

F9

1

6

1

Пересылка пары регистров H в SP

Окончание таблицы 5

Мнемокод

Код

Флажки

Число

Содержание

байтов

тактов

циклов

1

2

3

4

5

6

7

Специальные команды

PUSH rp

11РП0101

1

11

3

Пересылка пары регистров в стек

PUSH PSW

F5

1

11

3

Пересылка аккумулятора и регистра флажков в стек

POP rp

11РП0001

1

10

3

Загрузка регистровой пары из стека

POP PSW

F1

+

1

10

3

Загрузка аккумулятора и регистра флажков из стека

XTHL

E3

1

18

5

Обмен между регистровой парой H и стеком

PCHL

E9

1

5

1

Пересылка регистровой пары H в PC

IN port

DB

2

10

3

Ввод

OUT port

D3

2

10

3

Вывод

EI

FB

1

4

1

Разрешение прерывания

DI

F3

1

4

1

Запрещение прерывания

HLT

76

1

7

2

Останов

NOP

00

1

4

1

Нет операции

RIM

20

1

4

1

Чтение маски прерывания

SIM

30

1

4

1

Запись маски прерывания

Во второй графе коды первого байта команды b1 даются в двоичном восьмиразрядном представлении, если требуется указать в них адреса операндов, или в двухразрядном шестнадцатеричном представлении в иных случаях. Разряды обобщенных адресов регистров – источников данных – выражены буквами ИИИ, регистров – приемников данных – буквами ППП, пар регистров – буквами ПР. Подставляя вместо буквенных символов обобщенные адреса (таблица 2), получим коды конкретных вариантов команды.

Пример 1 – Из обобщенной формы команды пересылки MOV r1r2 (пересылка из регистра r2 в регистр r1) получим код для конкретного варианта MOV D, B (пересылка из регистра B в регистр D):

01  ППП ИИИ = 01 010 000 (2) = 50 H.

Пример 2 – Определим код команды загрузки непосредственных данных в пару регистров D–E MVI D, 0800 H:

b 1: 00ПР0001 = 00 01 0001 (2) = 11 H;

b2: 00 H; b3: 08 H.

В данной команде байт b3 пересылается в старший регистр пары (D), а байт b2 – в младший регистр (E).

Коды условий, при выполнении которых осуществляется указанная в команде управления операция, обозначены буквами УУУ. Их расшифровка приведена в таблице 6.

Таблица 6 – Коды условий для команд управления

УУУ

Мнемокод

Условия

000

NZ

Неравенство нулю

001

Z

Равенство нулю

010

NC

Отсутствие переноса

011

C

Наличие переноса

100

PO

Нечетность

101

PE

Четность

110

P

Плюс

111

M

Минус

Включая конкретные условия в мнемокоды команд, получаем их варианты. Например, команда условного перехода из обобщенной формы Jусл b3b2 переводится в вариант JNZ b3b2 – переход к команде с адресом b3b2, если признак результата говорит о том, что результат не равен нулю. Признаки формируются в регистре флажков RF по результатам выполненной операции, формат которого представлен на рисунке 13.

S

Z

0

AC

0

P

1

C

бит 7

бит 0

Рисунок 13 – Формат регистра флажков RF

Значение признака S = 0 означает «плюс», S = 1 – «минус», Z = 0 – неравенство нулю, Z = 1 – равенство нулю, C или AC = 1 – наличие переноса, C или AC = 0 – отсутствие переноса, P = 0 – нечетность, P = 1 – четность. Разряды 5, 3, 1 содержат константы и для признаков не используются.

В коде команды рестарта RST три разряда, отмеченные буквами nnn, формируются системой прерываний или указываются программистом. При выполнении команды текущее содержимое программного счетчика PC загружается в стек, а в PC формируется код с нулевым старшим байтом и младшим байтом вида 000nnn000.

Операция сравнения производится вычитанием операндов с установкой признака результата (Z = 1 – равные операнды, S = 0 – содержимое аккумулятора больше второго операнда, S = 1 – меньше).

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

Команды RLC, RRC, RAL и RAR реализуют циклические (кольцевые) сдвиги содержимого аккумулятора на один разряд в ту или иную сторону без включения (RLC и RRC) или с включением (RAL и RAR) в кольцо разряда C регистра флажков (рисунок 14).

Рисунок 14 – Схемы, поясняющие выполнение сдвигов микропроцессором

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