МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет Львівська політехніка
Кафедра САПР         
Звіт
До лабораторної роботи №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”. Я отримав практичні навички складання і налагодження програм виконання операцій додавання\віднімання двійково-кодованих десяткових чисел з використанням цих алгоритмів. Було розроблено програму реалізації цих алгоритмів та переведення чисел в двійково-кодовані десяткові числа.