
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)   | 
 
| 
   0841  | 
  
   69  | 
  
   MOV L, C  | 
  
   (H)   | 
 
| 
   0842  | 
  
   19  | 
  
   DAD D  | 
  
   (HL)   | 
 
Таблица результата:
| 
   Содержимое регистра  | 
  
   Получено практически  | 
  
   Получено теоретически  | 
 
| 
   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  | 
  
   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  | 
  
   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)   | 
 
Таблица результата:
| 
   Содержимое регистра  | 
  
   Получено практически  | 
  
   Получено теоретически  | 
 
| 
   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  | 
  
   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)   | 
 
| 
   0892  | 
  
   06 39  | 
  
   MVI B, 39H  | 
  
   (A)   | 
 
| 
   0894  | 
  
   80  | 
  
   ADD B  | 
  
   (A)  | 
 
| 
   0895  | 
  
   27  | 
  
   DAA  | 
  
   Десятичная коррекция аккумулятора  | 
 
Таблица результата:
| 
   Содержимое аккумулятора  | 
 |||
| 
   Получено практически  | 
  
   Получено теоретически  | 
 ||
| 
   Без коррекции  | 
  
   С коррекцией  | 
  
   Без коррекции  | 
  
   С коррекцией  | 
 
| 
   8С  | 
  
   92  | 
  
   8С  | 
  
   92  | 
 
Теоретический расчет:
  
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.