Команды арифметических операций предназначены для выполнения следующих операций:

- сложение содержимого аккумулятора с содержимым регистра, ячейки памяти или константы;

- сложение содержимого аккумулятора с содержимым регистра, ячейки памяти или константы и флагом переноса;

- вычитание из содержимого аккумулятора содержимого регистра, ячейки памяти или константы;

- вычитание из содержимого аккумулятора содержимого регистра, ячейки памяти или константы и флага переноса;

- увеличение содержимого регистра или ячейки памяти на 1;

- уменьшение содержимого регистра или ячейки памяти на 1;

- сложение содержимого регистра HL с содержимым другого парного регистра;

- десятичная коррекция.

Команды передачи управления могут состоять из одного или двух байтов. Первый байт содержит код операции, второй – константное значение (если предусмотрено).

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

Регистр флагов состоит из следующих признаков:

· C (Carry)- признак переноса;

· M (Minus) - признак отрицательного результата (в эмуляторе обозначен как S);

· Z (Zero) - признак нуля;

· P (Parity) - признак паритета/четности;

· AC (Auxiliary Carry) - признак половинного переноса.

Номер пп

Мнемоника

Код

Число циклов

Число тактов

Длина в байтах

Флаги: C, Z, M, P, AC

Содержание операции

Описание операции

1

ADD src

10000SSS

1

4

1

+++++

A <- A + src

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

2

ADC src

10001SSS

1

4

1

+++++

A <- A + src + CY

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

3

SUB src

10010SSS

1

4

1

+++++

A <- A - src

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

4

SBB src

10011SSS

1

4

1

+++++

A <- A - src - CY

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

5

ADD M

86

2

7

1

+++++

A <- A + (HL)

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

6

ADC M

8E

2

7

1

+++++

A <- A + (HL) + CY

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

7

SUB M

96

2

7

1

+++++

A <- A - (HL)

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

8

SBB M

9E

2

7

1

+++++

A <- A - (HL) - CY

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

9

ADI data

C6

2

7

2

+++++

A <- A + data

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

10

ACI data

CE

2

7

2

+++++

A <- A + data + CY

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

11

SUI data

D6

2

7

2

+++++

A <- A - data

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

12

SBI data

DE

2

7

2

+++++

A <- A - data - CY

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

13

INR dst

00DDD100

1

5

1

-++++

dst <- dst + 1

Увеличение регистра на 1

14

DCR dst

00DDD101

1

5

1

-++++

dst <- dst - 1

Уменьшение регистра на 1

15

INR M

34

3

10

1

-++++

(HL) <- (HL) + 1

Увеличение ячейки памяти на 1

16

DCR M

35

3

10

1

-++++

(HL) <- (HL) - 1

Уменьшение ячейки памяти на 1

17

DAA

27

1

4

1

+++++

A <- 2/10 корр-я A

Десятичная коррекция

18

DAD B/D/H/SP

09/19/29/39

3

10

1

+----

HL <- HL+BC/DE/HL/SP

Сложение регистра HL с содержимым парного регистра

19

INX B/D/H/SP

03/13/23/33

1

5

1

-----

R16 <- R16 + 1

Увеличение парного регистра на 1

20

DCX B/D/H/SP

0B/1B/2B/3B

1

5

1

-----

R16 <- R16 - 1

Уменьшение парного регистра на 1

5. Команды управления процессором

НЕ нашли? Не то? Что вы ищете?

Команды управления процессором предназначены для выполнения следующих операций:

- разрешение и запрет прерываний;

- возбуждение обработки запросов на прерывание;

- останов;

- пустая операция;

- запись в порт вывода;

- чтение из порта ввода.

Команды управления процессором состоят из одного байта, содержащего код операции. Команды записи в порт вывода и считывания из порта ввода состоят из 2-х байтов, второй байт из которых содержит номер порта (0-255).

Команды управления процессором не изменяют состояние флагов.

Номер пп

Мнемоника

Код

Число циклов

Число тактов

Длина в байтах

Содержание операции

Описание операции

1

IN port

DB

3

10

2

A <- port

Чтение байта из порта ввода

2

OUT port

D3

3

10

2

port <- A

Запись байта в порт вывода

3

RST n

11NNN111

3

11

1

-(SP) <- PC <- 8*n, n=0..7

Передача управления обработчику вектора прерывания

4

EI

FB

1

4

1

Разрешить прерывание

Установка триггера разрешения прерываний

5

DI

F3

1

4

1

Запретить прерывание

Сброс триггера разрешения прерываний

6

HLT

76

1

7

1

Останов

Останов МП

7

NOP

00

1

4

1

Нет операции

Пустая операция

  Поля src и dst обозначают один из 8-разрядных регистров A, B, C, D, H, L, закодированных в соответствии со следующей таблицей:

Регистр

B

C

D

E

H

L

A

Код

000

001

010

011

100

101

111

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

Скобки в обозначении операций означают содержимое оперативной памяти по адресу, взятому из источника, обозначенного внутри них.

Символы ->, <- означают направление пересылки, а <-> - обмен содержимым.

Обозначения data8, data16 и addr означают соответственно: однобайтное значение данных, двухбайтное слово данных и значение адреса.

Приложение 2

ТАБЛИЦА ПЕРЕВОДА ЧИСЕЛ МЕЖДУ РАЗЛИЧНЫМИ СИСТЕМАМИ СЧИСЛЕНИЯ

10

16

2

0

0

0000

1

1

0001

2

2

0010

3

3

0011

4

4

0100

5

5

0101

6

6

0110

7

7

0111

8

8

1000

9

9

1001

10

A

1010

11

B

1011

12

C

1100

13

D

1101

14

E

1110

15

F

1111


[1] 080110 Экономика и бухгалтерский учет

151001 Технология машиностроения

270116 Монтаж, наладка и эксплуатация электрооборудования промышленных и гражданских зданий

220301 Автоматизация технологических процессов и производств

260704 Технология текстильных изделий

190604 Техническое обслуживание и ремонт автомобильного транспорта

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3