МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет Львівська політехніка
Кафедра САПР
Звіт
До лабораторної роботи №6
З курсу “Архітектура комп’ютерів”
На тему:
«Вивчити алгоритми виконання операцій додавання та віднімання двійково-кодованих десяткових чисел для однокристального МП КР580».
Тема роботи:
Вивчити алгоритми виконання операцій додавання та віднімання двійково-кодованих десяткових чисел для однокристального МП КР580.
Мета роботи:
Вивчити алгоритми виконання операцій додавання та віднімання двійково-кодованих десяткових чисел для однокристального МП КР580, набути практичних навиків складання та налагоджування програм з використанням цих алгоритмів.
Теоретичні відомості
___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Лабораторне завдання:
Виконати дії: 819-324-318 над беззнаковими двійково-десятковими числами. Числа ввести упамять через регістрову пару В. Результат занести в регістрову пару Н.
Хід роботи
Для реалізації поставленого завдання мною була розроблена наступна програма, яка складається з двох частин – LAB6A.ASM (введення чисел в пам'ять через регістрову пару, та переведення в доповняльні коди); LAB6B.ASM (перевід чисел в BCD формат) та LAB6С.ASM (виконання арифметичних операцій):
LAB6A.ASM
ORG 100H
LXI H,180H
LXI B,819
MOV M,C
INX H
MOV M,B
INX H
LXI B,324
MOV M,C
INX H
MOV M,B
INX H
LXI B,318
MOV M,C
INX H
MOV M,B
INX H
LHLD 182H
CALL DOPOV
SHLD 186H
LHLD 184H
CALL DOPOV
SHLD 188H
JMP KINEC
DOPOV: LXI D,1000
MOV A,E
SUB L
MOV L,A
MOV A,D
SBB H
MOV H,A
RET
KINEC: HLT
LAB6В.ASM
ORG 100H
LXI H,819
SHLD 180H
LXI H,324
SHLD 182H
LXI H,318
SHLD 184H
LXI H,02a4h
SHLD 186H
LXI H,02aah
SHLD 188H
LHLD 180H
CALL PEREVID
SHLD 190H
LHLD 186H
CALL PEREVID
LXI D,9000h
DAD D
SHLD 192H
LHLD 188H
CALL PEREVID
LXI D,9000h
DAD D
SHLD 194H
JMP KINEC
PEREVID: XCHG
MVI H,-1
L100: INR H
MOV A,E
SUI 100
MOV E,A
MOV A,D
SBI 0
MOV D,A
JNC L100
MOV A,E
ADI 100
MOV E,A
MOV A,D
ACI 0
MOV D,A
MVI L,-1
L10: INR L
MOV A,E
SUI 10
MOV E,A
MOV A,D
SBI 0
MOV D,A
JNC L10
MOV A,E
ADI 10
MOV E,A
MOV A,D
ACI 0
MOV D,A
MOV A,L
RRC
RRC
RRC
RRC
ORA E
MOV L,A
RET
KINEC: HLT
LAB6С.ASM
ORG 100H
LXI H,819
SHLD 180H
LXI H,324
SHLD 182H
LXI H,318
SHLD 184H
LXI H,02a4h
SHLD 186H
LXI H,02aah
SHLD 188H
LXI H,0819h
SHLD 190H
LXI H,9676h
SHLD 192H
LXI H,9682h
SHLD 194H
LHLD 190h
XCHG
LHLD 192h
CALL DODAV
SHLD 196h
XCHG
LHLD 194h
CALL DODAV
SHLD 198h
JMP EXIT
DODAV: MOV A,L
ADD E
DAA
MOV L,A
MOV A,H
ADC D
DAA
MOV H,A
RET
EXIT: HLT
Після набору тексту програми в текстовому редакторі її було збережено у файл LAB6A.ASM, LAB6B.ASM та у файл LAB6С.ASM. Після цього скомпільована та злінкована у файли LAB6A.com, LAB6B.com та LAB6С.com відповідно.
Пізніше було завантажено скомпільовану програму LAB6A.com у відлагоджувач, яка реалізує операцію введення чисел в пам'ять через регістрову пару, та переведення їх в доповняльні коди, та зберігає результат у комірках памяті 180Н-189Н.
Після того як програма виконалась мною було перевірено відповідність карти пам’яті та інформації яка знаходиться в комірках за потрібною адресою.
Пізніше було завантажено скомпільовану програму LAB6В.com у відлагоджувач, дана частина реалізує операцію переведення чисел в BCD формат, та зберігає результати у комірках памяті 190Н, 191Н, 192Н, 193Н, 194Н, 195Н.
Пізніше було завантажено скомпільовану програму LAB6С.com у відлагоджувач, яка реалізує виконання арифметичних операцій, та зберігає результат у комірках памяті 196Н, 197Н, 198Н, 199Н, та регістровій парі Н.
Карта пам’яті
Адреса
Дані
Коментар
H
D
B
H
D
B
181
385
110000001
03
819
1100110011
Дане 1
180
384
110000000
33
183
387
110000011
01
324
101000100
Дане 2
182
386
110000010
44
185
389
110000101
01
318
100111110
Дане 3
184
388
110000100
3E
187
391
110000111
02
676
1010100100
Дане 2 в доповняльному коді
186
390
110000110
A4
189
393
110001001
02
682
1010101010
Дане 3 в доповняльному коді
188
392
110001000
AA
191
401
110010001
08
2073
100000011001
Дане 1 в BCD коді
190
400
110010000
19
193
403
110010011
96
38518
1001011001110110
Дане 2 в BCD коді
192
402
110010010
76
195
405
110010101
96
38530
1001011010000010
Дане 3 в BCD коді
194
404
110010100
82
197
407
110010111
04
1173
10010010101
Результат виконання 1 дії 819-324=495
196
406
110010110
95
199
409
110011001
01
375
101110111
Результат виконання 2 дії 495-318=177
198
408
110011000
77
Prn файли
LAB6A.PRN
0100 ORG 100H
0100 218001 LXI H,180H
0103 013303 LXI B,819
0106 71 MOV M,C
0107 23 INX H
0108 70 MOV M,B
0109 23 INX H
010A 014401 LXI B,324
010D 71 MOV M,C
010E 23 INX H
010F 70 MOV M,B
0110 23 INX H
0111 013E01 LXI B,318
0114 71 MOV M,C
0115 23 INX H
0116 70 MOV M,B
0117 23 INX H
0118 2A8201 LHLD 182H
011B CD2D01 CALL DOPOV
011E 228601 SHLD 186H
0121 2A8401 LHLD 184H
0124 CD2D01 CALL DOPOV
0127 228801 SHLD 188H
012A C33701 JMP KINEC
012D 11E803 DOPOV: LXI D,1000
0130 7B MOV A,E
0131 95 SUB L
0132 6F MOV L,A
0133 7A MOV A,D
0134 9C SBB H
0135 67 MOV H,A
0136 C9 RET
LAB6B.PRN
0100 ORG 100H
0100 213303 LXI H,819
0103 228001 SHLD 180H
0106 214401 LXI H,324
0109 228201 SHLD 182H
010C 213E01 LXI H,318
010F 228401 SHLD 184H
0112 21A402 LXI H,02A4H
0115 228601 SHLD 186H
0118 21AA02 LXI H,02AAH
011B 228801 SHLD 188H
011E 2A8001 LHLD 180H
0121 CD4401 CALL PEREVID
0124 229001 SHLD 190H
0127 2A8601 LHLD 186H
012A CD4401 CALL PEREVID
012D 110090 LXI D,9000H
0130 19 DAD D
0131 229201 SHLD 192H
0134 2A8801 LHLD 188H
0137 CD4401 CALL PEREVID
013A 110090 LXI D,9000H
013D 19 DAD D
013E 229401 SHLD 194H
0141 C37901 JMP KINEC
0144 EB PEREVID: XCHG
0145 26FF MVI H,-1
0147 24 L100: INR H
0148 7B MOV A,E
0149 D664 SUI 100
014B 5F MOV E,A
014C 7A MOV A,D
014D DE00 SBI 0
014F 57 MOV D,A
0150 D24701 JNC L100
0153 7B MOV A,E
0154 C664 ADI 100
0156 5F MOV E,A
0157 7A MOV A,D
0158 CE00 ACI 0
015A 57 MOV D,A
015B 2EFF MVI L,-1
015D 2C L10: INR L
015E 7B MOV A,E
015F D60A SUI 10
0161 5F MOV E,A
0162 7A MOV A,D
0163 DE00 SBI 0
0165 57 MOV D,A
0166 D25D01 JNC L10
0169 7B MOV A,E
016A C60A ADI 10
016C 5F MOV E,A
016D 7A MOV A,D
016E CE00 ACI 0
0170 57 MOV D,A
0171 7D MOV A,L
0172 0F RRC
0173 0F RRC
0174 0F RRC
0175 0F RRC
0176 B3 ORA E
0177 6F MOV L,A
0178 C9 RET
LAB6С.PRN
0100 ORG 100H
0100 213303 LXI H,819
0103 228001 SHLD 180H
0106 214401 LXI H,324
0109 228201 SHLD 182H
010C 213E01 LXI H,318
010F 228401 SHLD 184H
0112 21A402 LXI H,02A4H
0115 228601 SHLD 186H
0118 21AA02 LXI H,02AAH
011B 228801 SHLD 188H
011E 211908 LXI H,0819H
0121 229001 SHLD 190H
0124 217696 LXI H,9676H
0127 229201 SHLD 192H
012A 218296 LXI H,9682H
012D 229401 SHLD 194H
0130 2A9001 LHLD 190H
0133 EB XCHG
0134 2A9201 LHLD 192H
0137 CD4A01 CALL DODAV
013A 229601 SHLD 196H
013D EB XCHG
013E 2A9401 LHLD 194H
0141 CD4A01 CALL DODAV
0144 229801 SHLD 198H
0147 C35301 JMP EXIT
014A 7D DODAV: MOV A,L
014B 83 ADD E
014C 27 DAA
014D 6F MOV L,A
014E 7C MOV A,H
014F 8A ADC D
0150 27 DAA
0151 67 MOV H,A
0152 C9 RET
Висновок:
Під час виконання лабораторної роботи мною було засвоєно матеріал по темі: “Алгоритми виконання операцій додавання та віднімання двійково-кодованих десяткових чисел для однокристального МП КР580”. Я отримав практичні навички складання і налагодження програм виконання операцій додавання\віднімання двійково-кодованих десяткових чисел з використанням цих алгоритмів. Було розроблено програму реалізації цих алгоритмів та переведення чисел в двійково-кодовані десяткові числа.