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 |
Десятичная коррекция аккумулятора |
Таблица результата:
Содержимое аккумулятора |
|||
Получено практически |
Получено теоретически |
||
Без коррекции |
С коррекцией |
Без коррекции |
С коррекцией |
8С |
92 |
8С |
92 |
Теоретический расчет:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.