Цель работы: изучение арифметических команд микропроцессора КР580ВМ80А: команд сложения и вычитания, инкремента и декремента, десятичной коррекции аккумулятора.
Описание арифметических команд микропроцессора, программы и заполненные таблицы.
Общий вид команд:
ADD R – сложение содержимого регистра A, B, C, D, E, H, L;
ADD M – сложение содержимого ячейки памяти (адрес ячейки – в регистровой паре HL);
ADI d8 – сложение непосредственных данных, d8 – байт данных (второй байт команды);
ADC R – сложение содержимого регистра A, B, C, D, E, H, L с переносом;
ADC M – сложение содержимого ячейки памяти (адрес ячейки – в регистровой паре HL) с переносом;
ACI d8 - сложение непосредственных данных с переносом, d8 – байт данных (второй байт команды);
1.1. Команды ADD R, ADD M, ADI d8. При их выполнении предполагается, что 1-е слагаемое находится в аккумуляторе, 2-е - указывается в команде. Результат заносится в аккумулятор.
Программа, реализующая операцию сложения:
(A) =(A)+(B)+(M)+10H
Исходные данные: (А)F0H, (B) E0H, (0900) 0FH
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0800 |
80 |
ADD B |
(A) (A)+(B) |
0801 |
21 00 09 |
LXI H, 0900H |
(HL) 0900H |
0804 |
86 |
ADD M |
(A) (A)+(0900H) |
0805 |
C6 10 |
ADI 10H |
(A) (A)+10H |
Таблица результата:
Содержимое регистра |
Получено практически |
Получено теоретически |
A |
EFH |
EFH |
F |
82H |
82H |
Флаги S, Z, AC, P, CY. |
1, 0, 0, 0, 0. |
1, 0, 0, 0, 0. |
Теоретический расчет:
1.2. Команды ADC R, ADC M, ACI d8. Эти команды позволяют производить суммирование многобайтных чисел длиной 16, 24 и более разрядов. При этом сложение должно производится по байтам, начиная с младшего.
Программа сложения 8-разрядных чисел:
(HL)=(DE)+(BC)
Исходные данные: (BC) FFFFH, (DE) 0001H.
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0810 |
79 |
MOV A, C |
(A) (C) |
0811 |
83 |
ADD E |
(A) (C)+(E) |
0812 |
6F |
MOV L, A |
(L) (A) |
0813 |
78 |
MOV A, B |
(A) (B) |
0814 |
8A |
ADC D |
(A) (B)+(D) |
0815 |
67 |
MOV H, A |
(A) (B)+(D) |
Таблица результата:
Содержимое регистра |
Получено практически |
Получено теоретически |
HL |
0000H |
0000H |
F |
57H |
57H |
Флаги S, Z, AC, P, CY. |
0, 1, 1, 1, 1. |
0, 1, 1, 1, 1. |
Теоретический расчет:
2. Команды вычитания 8-разрядных чисел.
Общий вид команд:
SUB R – вычитание регистра A, B, C, D, E, H, L;
SUB M – вычитание содержимого ячейки памяти (адрес ячейки – в регистровой паре HL);
SUI d8 – вычитание непосредственных данных, d8 – байт данных (второй байт команды);
SBB R – вычитание содержимого регистра A, B, C, D, E, H, L с заемом;
SBB M – вычитание содержимого ячейки памяти (адрес ячейки – в регистровой паре HL) с заёмом;
SBI d8 – вычитание непосредственных данных с переносом, d8 – байт данных (второй байт команды);
2.1. Команды SUB R, SUB M, SUI d8.
Программа, выполняющая операцию вычитания:
(A)=(A)-(B)-(M)-01H.
Исходные данные: (A) FFH, (B) 0FH, (0900H) F0H.
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0820 |
90 |
SUB B |
(A) (A)-(B) |
0821 |
21 00 09 |
LXI H, 0900H |
(HL) 0900H |
0824 |
96 |
SUB M |
(A) (A)-(0900H) |
0825 |
D6 01 |
SUI 01H |
(A) (A)-01H |
Таблица результата:
Содержимое регистра |
Получено практически |
Получено теоретически |
A |
FFH |
FFH |
F |
87H |
87H |
Флаги S, Z, AC, P, CY. |
1, 0, 0, 1, 1. |
1, 0, 0, 1, 1. |
Теоретический расчет:
2.2. КомандыSBB R, SBB M, SBI d8.
Программа вычитания 16-разрядных чисел.
(HL)=(DE)-(BC)
Исходные данные: (DE) 6189H, (BC) 4111H.
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0830 |
7B |
MOV A, E |
(A) (E) |
0831 |
91 |
SUB C |
(A) (A)-(C) |
0832 |
6F |
MOV L, A |
(L) (A) |
0833 |
7A |
MOV A, D |
(A) (D) |
0834 |
98 |
SUB B |
(A) (A)-(B) |
0835 |
67 |
MOV H, A |
(H) (A) |
Таблица результата:
Содержимое регистра |
Получено практически |
Получено теоретически |
HL |
2078H |
2078H |
F |
12H |
12H |
Флаги S, Z, AC, P, CY. |
0, 0, 1, 0, 0. |
0, 0, 1, 0, 0. |
Теоретический расчет:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.