Изучение арифметических команд микропроцессора КР580ВМ80А: команд сложения и вычитания, инкремента и декремента, десятичной коррекции аккумулятора, страница 2

                                        

3. Команды двойного сложения.

Общий вид команд:

DAD H – сложение (HL) (HL)+(HL);

DAD B – сложение (HL) (HL)+(BC);

DAD D – сложение (HL) (HL)+(DE);

DAD SP – сложение (HL) (HL)+(SP);

Особенность команд двойного сложения является то, что они могут изменять только бит признака (флаг) переноса CY.

Программа сложения 16-разрядных чисел.

(HL)=(BC)+(DE).

Исходные данные: (BC) 55AAH, (DE) AA55H.

Адрес

Машинный код

Мнемокод

Комментарий

0840

60

MOV H, B

(H) (B)

0841

69

MOV L, C

(H) (C)

0842

19

DAD D

(HL) (HL)+(DE)

Таблица результата:

Содержимое регистра

Получено практически

Получено теоретически

HL

FFFFH

FFFFH

F

Не изменяется

---

Флаги CY.

0

0

Теоретический расчет:

      

4. Команды инкремента.

Общий вид команд:

INR R – инкремент (увеличение на 1) содержимого регистра A, B, C, D, E, H, L;

INR M - инкремент (увеличение на 1) содержимого ячейки памяти (адрес ячейки – в регистровой паре HL);

INX RP - инкремент (увеличение на 1) содержимого регистровой пары BC, DE, HL или указателя стека SP.

Команды инкремента содержимого регистра INR R и содержимого ячейки памяти INR M не влияют на бит признака (флаг) переноса CY.

Команды инкремента содержимого регистровой пары INX RP не влияют на биты признаков (флаги).

4.1. Программа инкремента.

Исходные данные: (E) 81H.

Адрес

Машинный код

Мнемокод

Комментарий

0850

10

INR E

(E) (E)+1

Таблица результата:

Содержимое регистра

Получено практически

Получено теоретически

E

82H

82H

F

86H

86H

Флаги S, Z, AC, P.

1, 0, 0, 1.

1, 0, 0, 1.

Теоретический расчет:

      

4.2. Программа инкремента регистровой пары.

Исходные данные: (DE) 0F0FH, (F) 02H

Адрес

Машинный код

Мнемокод

Комментарий

0860

13

INX D

(DE) ( DE)+1

Таблица результата:

Содержимое регистра

Получено практически

Получено теоретически

DE

0F10H

0F10H

F

02H

---

5. Команды декремента.

Общий вид команд:

DCR R – инкремент (уменьшение на 1) содержимого регистра A, B, C, D, E, H, L;

DCR M - инкремент (уменьшение на 1) содержимого ячейки памяти (адрес ячейки – в регистровой паре HL);

DCX RP - инкремент (уменьшение на 1) содержимого регистровой пары BC, DE, HL или указателя стека SP.

Команды инкремента содержимого регистра DCR R и содержимого ячейки памяти DCR M не влияют на бит признака (флаг) переноса CY.

Команды инкремента содержимого регистровой пары DCX RP не влияют на биты признаков (флаги).

5.1. Программа декремента.

Исходные данные: (С) 10H.

Адрес

Машинный код

Мнемокод

Комментарий

0870

0D

DCR C

(C) (C)-1

Таблица результата:

Содержимое регистра

Получено практически

Получено теоретически

E

0FH

0FH

F

06H

06H

Флаги S, Z, AC, P.

0, 0, 0, 1.

0, 0, 0, 1.

Теоретический расчет:

               

5.2. Программа декремента регистровой пары.

Исходные данные: (HL) FFFFH, (F) 02H.

Адрес

Машинный код

Мнемокод

Комментарий

0880

2B

DCX H

(HL) (HL)-1

Таблица результата:

Содержимое регистра

Получено практически

Получено теоретически

HL

FFFEH

FFFEH

F

02H

---

6. Команда десятичной коррекции аккумулятора DAA.

Правило коррекции. 2 этапа:

- на первом этапе проводится коррекция младшей тетрады содержимого аккумулятора: при этом, если ее значение получилось больше 9 или установлен флаг дополнительного переноса (АС)=1, то к содержимому аккумулятора добавляется число 6 (0110 в двоичном коде);

- на втором этапе проводится коррекция старшей тетрады содержимого аккумулятора: при этом, если ее значение получилось больше 9 или установлен флаг переноса (CY)=1, то к содержимому аккумулятора добавляется число 6 (0110 в двоичном коде).

6.1. Программа сложения двух десятичных чисел 53+39.

Адрес

Машинный код

Мнемокод

Комментарий

0890

3E  53

MVI A, 53H

(A) 53H

0892

06  39

MVI B, 39H

(A) 39H

0894

80

ADD B

(A)(A)+(B)

0895

27

DAA

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

Таблица результата:

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

Получено практически

Получено теоретически

Без коррекции

С коррекцией

Без коррекции

С коррекцией

92

92

Теоретический расчет: