МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Кафедра САПР
ЗВІТ
ДО ЛАБОРАТОРНОЇ РОБОТИ № 6
На тему: «Вивчити алгоритми виконання операцій додавання та віднімання двійково-кодованих десяткових чисел для однокристального МП КР580»
З дисципліни : «Архітектура комп’ютерів»
ЛЬВІВ – 2007 
Тема роботи:	Вивчити алгоритми виконання операцій додавання та віднімання двійково-кодованих десяткових чисел для однокристального МП КР580.
Мета роботи:	Вивчити алгоритми виконання операцій додавання та віднімання двійково-кодованих десяткових чисел для однокристального МП КР580, набути практичних навиків складання та налагоджування програм з використанням цих алгоритмів.
ТЕОРЕТИЧНІ ВІДОМОСТІ
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ЛАБОРАТОРНЕ ЗАВДАННЯ:
Виконати арифметичні операції над двійково-десятковими числами 98 – 65 – 12 + 5. Дані ввести через регістр А. Результат записати в регістр Н.
ХІД РОБОТИ:
1)	98 – 65 = 98 + (-65) = 33
Yдоп = ( ( 10k – 1 ) – x ) + 1
(-65)доп = ( ( 100 – 1 ) – 65 ) + 1 = 35
	98	0000 0000 1001 1000
	+  35(-65)	1001 1001 0011 0101
		1001 1001 1100 1101
			 0110
		1001 1001 1101 0011
			0110	
		1001 1010 0011 0011
			 0110	
		1010 0000 0011 0011
			0110	
	33	0000 0000 0011 0011
2)	33 – 12 = 33 + (-12) = 21
Yдоп = ( ( 10k – 1 ) – x ) + 1
(-12)доп = ( ( 100 – 1 ) – 12 ) + 1 = 88
	33	0000 0000 0011 0011
	+  88(-12)	1001 1001 1000 1000
		1001 1001 1011 1011
			 0110
		1001 1001 1100 0001
			0110	
		1001 1010 0010 0001
			 0110	
		1010 0000 0010 0001
			0110	
	21	0000 0000 0010 0001
3)	21 + 5 = 26
	21	0000 0000 0010 0001
	+   5	0000 0000 0000 0101
	26	0000 0000 0010 0110
Для реалізації поставленого завдання була розроблена наступна програма, яка складається з двох частин – LAB6A.ASM (введення даних в пам'ять та переведення в доповняльні коди і BCD формат) та LAB6B.ASM (виконання арифметичних операцій):
LAB6A.ASM:
LAB6B.ASM:
ORG 100H
MVI A,98
STA 180h
MVI A,65
STA 181h
MVI A,12
STA 182h
MVI A,5
STA 183h
LDA 180h
CALL PEREVID
SHLD 184h
LDA 181h
CALL DOPOV
STA 186h
CALL PEREVID
MVI D,99h
DAD D
SHLD 187h
LDA 182h
CALL DOPOV
STA 189h
CALL PEREVID
MVI D,99h
DAD D
SHLD 18Ah
LDA 183h
CALL PEREVID
SHLD 18Ch
JMP EXIT
DOPOV:	MOV B,A
	MVI A,100
	SUB B
	RET
PEREVID: 	MVI H,-1
	L100:	INR H
		SUI 100
	JNC L100
	ADI 100
	MVI L,-1
	L10:	INR L
		SUI 10
	JNC L10
	ADI 10
	MOV C,A
	MOV A,L
	RRC
	RRC
	RRC
	RRC
	ORA C
	MOV L,A
	
	RET
EXIT:	HLT
ORG 100H
LXI H,4162h
SHLD 180h
LXI H,050Ch
SHLD 182h
LXI H,0098h
SHLD 184h
LXI H,3523h
SHLD 186h
LXI H,5899h
SHLD 188h
LXI H,9988h
SHLD 18Ah
LXI H,0005h
SHLD 18Ch
LHLD 184h
XCHG
LHLD 187h
DAD D
SHLD 190h
CALL DOPOV
SHLD 1A0h
XCHG
LHLD 18Ah
DAD D
SHLD 192h
CALL DOPOV
SHLD 1A2h
XCHG
LHLD 18Ch
DAD D
SHLD 194h
CALL DOPOV
SHLD 1A4h
JMP EXIT
DOPOV:	ORI 0
	MOV A,L
	DAA
	MOV L,A
	MOV A,H
	JNC COR
	INR A
	COR:	ORI 0
		DAA
		MOV H,A
	RET
EXIT:	HLT
LAB6A.ASM:
Після компілювання і лінкування програми завантажуємо її у відлагоджувач і перевіряємо чи знаходиться наша програма в пам'яті:
F:[cpm] d lab6a.com
DDT VERS 1.0
NEXT  PC
0180 0100
-d100
0100 3E 62 32 80 01 3E 41 32 81 01 3E 0C 32 82 01 3E >b2..>A2..>.2..>
0110 05 32 83 01 3A 80 01 CD 52 01 22 84 01 3A 81 01 .2..:...R."..:..
0120 CD 4D 01 32 86 01 CD 52 01 16 99 19 22 87 01 3A .M.2...R...."..:
0130 82 01 CD 4D 01 32 89 01 CD 52 01 16 99 19 22 8A ...M.2...R....".
0140 01 3A 83 01 CD 52 01 22 8C 01 C3 6F 01 47 3E 64 .:...R."...o.G>d
0150 90 C9 26 FF 24 D6 64 D2 54 01 C6 64 2E FF 2C D6 ..&.$.d.T..d..,.
0160 0A D2 5E 01 C6 0A 4F 7D 0F 0F 0F 0F B1 6F C9 76 ..^...O}.....o.v
0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0180 1A 84 12 13 C3 69 01 D1 2E 00 E9 0E 10 CD 05 00 .....i..........
0190 32 5F 1E C9 21 66 1E 70 2B 71 2A 65 1E EB 0E 11 2_..!f.p+q*e....
01A0 CD 05 00 32 5F 1E C9 11 00 00 0E 12 CD 05 00 32 ...2_..........2
01B0 5F 1E C9 21 68 1E 70 2B 71 2A 67 1E EB 0E 13 CD _..!h.p+q*g.....
Для виконання програми і виведення результатів її роботи виконуємо покрокове трасування програми:
-tad
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0000 S=0100 P=0100 MVI  A,62
C0Z0M0E0I0 A=62 B=0000 D=0000 H=0000 S=0100 P=0102 STA  0180
C0Z0M0E0I0 A=62 B=0000 D=0000 H=0000 S=0100 P=0105 MVI  A,41
C0Z0M0E0I0 A=41 B=0000 D=0000 H=0000 S=0100 P=0107 STA  0181
C0Z0M0E0I0 A=41 B=0000 D=0000 H=0000 S=0100 P=010A MVI  A,0C
C0Z0M0E0I0 A=0C B=0000 D=0000 H=0000 S=0100 P=010C STA  0182
C0Z0M0E0I0 A=0C B=0000 D=0000 H=0000 S=0100 P=010F MVI  A,05
C0Z0M0E0I0 A=05 B=0000 D=0000 H=0000 S=0100 P=0111 STA  0183
C0Z0M0E0I0 A=05 B=0000 D=0000 H=0000 S=0100 P=0114 LDA  0180
C0Z0M0E0I0 A=62 B=0000 D=0000 H=0000 S=0100 P=0117 CALL 0152
C0Z0M0E0I0 A=62 B=0000 D=0000 H=0000 S=00FE P=0152 MVI  H,FF
C0Z0M0E0I0 A=62 B=0000 D=0000 H=FF00 S=00FE P=0154 INR  H
C0Z1M0E1I1 A=62 B=0000 D=0000 H=0000 S=00FE P=0155 SUI  64
C1Z0M1E0I1 A=FE B=0000 D=0000 H=0000 S=00FE P=0157 JNC  0154
C1Z0M1E0I1 A=FE B=0000 D=0000 H=0000 S=00FE P=015A ADI  64
C1Z0M0E0I1 A=62 B=0000 D=0000 H=0000 S=00FE P=015C MVI  L,FF
C1Z0M0E0I1 A=62 B=0000 D=0000 H=00FF S=00FE P=015E INR  L
C1Z1M0E1I1 A=62 B=0000 D=0000 H=0000 S=00FE P=015F SUI  0A
C0Z0M0E0I1 A=58 B=0000 D=0000 H=0000 S=00FE P=0161 JNC  015E
C0Z0M0E0I1 A=58 B=0000 D=0000 H=0000 S=00FE P=015E INR  L
C0Z0M0E0I0 A=58 B=0000 D=0000 H=0001 S=00FE P=015F SUI  0A
C0Z0M0E1I1 A=4E B=0000 D=0000 H=0001 S=00FE P=0161 JNC  015E
C0Z0M0E1I1 A=4E B=0000 D=0000 H=0001 S=00FE P=015E INR  L
C0Z0M0E0I0 A=4E B=0000 D=0000 H=0002 S=00FE P=015F SUI  0A
C0Z0M0E1I0 A=44 B=0000 D=0000 H=0002 S=00FE P=0161 JNC  015E
C0Z0M0E1I0 A=44 B=0000 D=0000 H=0002 S=00FE P=015E INR  L
C0Z0M0E1I0 A=44 B=0000 D=0000 H=0003 S=00FE P=015F SUI  0A
C0Z0M0E1I1 A=3A B=0000 D=0000 H=0003 S=00FE P=0161 JNC  015E
C0Z0M0E1I1 A=3A B=0000 D=0000 H=0003 S=00FE P=015E INR  L
C0Z0M0E0I0 A=3A B=0000 D=0000 H=0004 S=00FE P=015F SUI  0A
C0Z0M0E1I0 A=30 B=0000 D=0000 H=0004 S=00FE P=0161 JNC  015E
C0Z0M0E1I0 A=30 B=0000 D=0000 H=0004 S=00FE P=015E INR  L
C0Z0M0E1I0 A=30 B=0000 D=0000 H=0005 S=00FE P=015F SUI  0A
C0Z0M0E0I1 A=26 B=0000 D=0000 H=0005 S=00FE P=0161 JNC  015E
C0Z0M0E0I1 A=26 B=0000 D=0000 H=0005 S=00FE P=015E INR  L
C0Z0M0E1I0 A=26 B=0000 D=0000 H=0006 S=00FE P=015F SUI  0A
C0Z0M0E0I1 A=1C B=0000 D=0000 H=0006 S=00FE P=0161 JNC  015E
C0Z0M0E0I1 A=1C B=0000 D=0000 H=0006 S=00FE P=015E INR  L
C0Z0M0E0I0 A=1C B=0000 D=0000 H=0007 S=00FE P=015F SUI  0A
C0Z0M0E1I0 A=12 B=0000 D=0000 H=0007 S=00FE P=0161 JNC  015E
C0Z0M0E1I0 A=12 B=0000 D=0000 H=0007 S=00FE P=015E INR  L
C0Z0M0E0I0 A=12 B=0000 D=0000 H=0008 S=00FE P=015F SUI  0A
C0Z0M0E0I1 A=08 B=0000 D=0000 H=0008 S=00FE P=0161 JNC  015E
C0Z0M0E0I1 A=08 B=0000 D=0000 H=0008 S=00FE P=015E INR  L
C0Z0M0E1I0 A=08 B=0000 D=0000 H=0009 S=00FE P=015F SUI  0A
C1Z0M1E0I1 A=FE B=0000 D=0000 H=0009 S=00FE P=0161 JNC  015E
C1Z0M1E0I1 A=FE B=0000 D=0000 H=0009 S=00FE P=0164 ADI  0A
C1Z0M0E0I1 A=08 B=0000 D=0000 H=0009 S=00FE P=0166 MOV  C,A
C1Z0M0E0I1 A=08 B=0008 D=0000 H=0009 S=00FE P=0167 MOV  A,L
C1Z0M0E0I1 A=09 B=0008 D=0000 H=0009 S=00FE P=0168 RRC
C1Z0M0E0I1 A=84 B=0008 D=0000 H=0009 S=00FE P=0169 RRC
C0Z0M0E0I1 A=42 B=0008 D=0000 H=0009 S=00FE P=016A RRC
C0Z0M0E0I1 A=21 B=0008 D=0000 H=0009 S=00FE P=016B RRC
C1Z0M0E0I1 A=90 B=0008 D=0000 H=0009 S=00FE P=016C ORA  C
C0Z0M1E0I0 A=98 B=0008 D=0000 H=0009 S=00FE P=016D MOV  L,A
C0Z0M1E0I0 A=98 B=0008 D=0000 H=0098 S=00FE P=016E RET
C0Z0M1E0I0 A=98 B=0008 D=0000 H=0098 S=0100 P=011A SHLD 0184
C0Z0M1E0I0 A=98 B=0008 D=0000 H=0098 S=0100 P=011D LDA  0181
C0Z0M1E0I0 A=41 B=0008 D=0000 H=0098 S=0100 P=0120 CALL 014D
C0Z0M1E0I0 A=41 B=0008 D=0000 H=0098 S=00FE P=014D MOV  B,A
C0Z0M1E0I0 A=41 B=4108 D=0000 H=0098 S=00FE P=014E MVI  A,64
C0Z0M1E0I0 A=64 B=4108 D=0000 H=0098 S=00FE P=0150 SUB  B
C0Z0M0E0I0 A=23 B=4108 D=0000 H=0098 S=00FE P=0151 RET
C0Z0M0E0I0 A=23 B=4108 D=0000 H=0098 S=0100 P=0123 STA  0186
C0Z0M0E0I0 A=23 B=4108 D=0000 H=0098 S=0100 P=0126 CALL 0152
C0Z0M0E0I0 A=23 B=4108 D=0000 H=0098 S=00FE P=0152 MVI  H,FF
C0Z0M0E0I0 A=23 B=4108 D=0000 H=FF98 S=00FE P=0154 INR  H
C0Z1M0E1I1 A=23 B=4108 D=0000 H=0098 S=00FE P=0155 SUI  64
C1Z0M1E0I1 A=BF B=4108 D=0000 H=0098 S=00FE P=0157 JNC  0154
C1Z0M1E0I1 A=BF B=4108 D=0000 H=0098 S=00FE P=015A ADI  64
C1Z0M0E0I1 A=23 B=4108 D=0000 H=0098 S=00FE P=015C MVI  L,FF
C1Z0M0E0I1 A=23 B=4108 D=0000 H=00FF S=00FE P=015E INR  L
C1Z1M0E1I1 A=23 B=4108 D=0000 H=0000 S=00FE P=015F SUI  0A
C0Z0M0E0I1 A=19 B=4108 D=0000 H=0000 S=00FE P=0161 JNC  015E
C0Z0M0E0I1 A=19 B=4108 D=0000 H=0000 S=00FE P=015E INR  L
C0Z0M0E0I0 A=19 B=4108 D=0000 H=0001 S=00FE P=015F SUI  0A
C0Z0M0E1I1 A=0F B=4108 D=0000 H=0001 S=00FE P=0161 JNC  015E
C0Z0M0E1I1 A=0F B=4108 D=0000 H=0001 S=00FE P=015E INR  L
C0Z0M0E0I0 A=0F B=4108 D=0000 H=0002 S=00FE P=015F SUI  0A
C0Z0M0E1I0 A=05 B=4108 D=0000 H=0002 S=00FE P=0161 JNC  015E
C0Z0M0E1I0 A=05 B=4108 D=0000 H=0002 S=00FE P=015E INR  L
C0Z0M0E1I0 A=05 B=4108 D=0000 H=0003 S=00FE P=015F SUI  0A
C1Z0M1E0I1 A=FB B=4108 D=0000 H=0003 S=00FE P=0161 JNC  015E
C1Z0M1E0I1 A=FB B=4108 D=0000 H=0003 S=00FE P=0164 ADI  0A
C1Z0M0E1I1 A=05 B=4108 D=0000 H=0003 S=00FE P=0166 MOV  C,A
C1Z0M0E1I1 A=05 B=4105 D=0000 H=0003 S=00FE P=0167 MOV  A,L
C1Z0M0E1I1 A=03 B=4105 D=0000 H=0003 S=00FE P=0168 RRC
C1Z0M0E1I1 A=81 B=4105 D=0000 H=0003 S=00FE P=0169 RRC
C1Z0M0E1I1 A=C0 B=4105 D=0000 H=0003 S=00FE P=016A RRC
C0Z0M0E1I1 A=60 B=4105 D=0000 H=0003 S=00FE P=016B RRC
C0Z0M0E1I1 A=30 B=4105 D=0000 H=0003 S=00FE P=016C ORA  C
C0Z0M0E1I0 A=35 B=4105 D=0000 H=0003 S=00FE P=016D MOV  L,A
C0Z0M0E1I0 A=35 B=4105 D=0000 H=0035 S=00FE P=016E RET
C0Z0M0E1I0 A=35 B=4105 D=0000 H=0035 S=0100 P=0129 MVI  D,99
C0Z0M0E1I0 A=35 B=4105 D=9900 H=0035 S=0100 P=012B DAD  D
C0Z0M0E1I0 A=35 B=4105 D=9900 H=9935 S=0100 P=012C SHLD 0187
C0Z0M0E1I0 A=35 B=4105 D=9900 H=9935 S=0100 P=012F LDA  0182
C0Z0M0E1I0 A=0C B=4105 D=9900 H=9935 S=0100 P=0132 CALL 014D
C0Z0M0E1I0 A=0C B=4105 D=9900 H=9935 S=00FE P=014D MOV  B,A
C0Z0M0E1I0 A=0C B=0C05 D=9900 H=9935 S=00FE P=014E MVI  A,64
C0Z0M0E1I0 A=64 B=0C05 D=9900 H=9935 S=00FE P=0150 SUB  B
C0Z0M0E0I1 A=58 B=0C05 D=9900 H=9935 S=00FE P=0151 RET
C0Z0M0E0I1 A=58 B=0C05 D=9900 H=9935 S=0100 P=0135 STA  0189
C0Z0M0E0I1 A=58 B=0C05 D=9900 H=9935 S=0100 P=0138 CALL 0152
C0Z0M0E0I1 A=58 B=0C05 D=9900 H=9935 S=00FE P=0152 MVI  H,FF
C0Z0M0E0I1 A=58 B=0C05 D=9900 H=FF35 S=00FE P=0154 INR  H
C0Z1M0E1I1 A=58 B=0C05 D=9900 H=0035 S=00FE P=0155 SUI  64
C1Z0M1E0I0 A=F4 B=0C05 D=9900 H=0035 S=00FE P=0157 JNC  0154
C1Z0M1E0I0 A=F4 B=0C05 D=9900 H=0035 S=00FE P=015A ADI  64
C1Z0M0E0I0 A=58 B=0C05 D=9900 H=0035 S=00FE P=015C MVI  L,FF
C1Z0M0E0I0 A=58 B=0C05 D=9900 H=00FF S=00FE P=015E INR  L
C1Z1M0E1I1 A=58 B=0C05 D=9900 H=0000 S=00FE P=015F SUI  0A
C0Z0M0E1I1 A=4E B=0C05 D=9900 H=0000 S=00FE P=0161 JNC  015E
C0Z0M0E1I1 A=4E B=0C05 D=9900 H=0000 S=00FE P=015E INR  L
C0Z0M0E0I0 A=4E B=0C05 D=9900 H=0001 S=00FE P=015F SUI  0A
C0Z0M0E1I0 A=44 B=0C05 D=9900 H=0001 S=00FE P=0161 JNC  015E
C0Z0M0E1I0 A=44 B=0C05 D=9900 H=0001 S=00FE P=015E INR  L
C0Z0M0E0I0 A=44 B=0C05 D=9900 H=0002 S=00FE P=015F SUI  0A
C0Z0M0E1I1 A=3A B=0C05 D=9900 H=0002 S=00FE P=0161 JNC  015E
C0Z0M0E1I1 A=3A B=0C05 D=9900 H=0002 S=00FE P=015E INR  L
C0Z0M0E1I0 A=3A B=0C05 D=9900 H=0003 S=00FE P=015F SUI  0A
C0Z0M0E1I0 A=30 B=0C05 D=9900 H=0003 S=00FE P=0161 JNC  015E
C0Z0M0E1I0 A=30 B=0C05 D=9900 H=0003 S=00FE P=015E INR  L
C0Z0M0E0I0 A=30 B=0C05 D=9900 H=0004 S=00FE P=015F SUI  0A
C0Z0M0E0I1 A=26 B=0C05 D=9900 H=0004 S=00FE P=0161 JNC  015E
C0Z0M0E0I1 A=26 B=0C05 D=9900 H=0004 S=00FE P=015E INR  L
C0Z0M0E1I0 A=26 B=0C05 D=9900 H=0005 S=00FE P=015F SUI  0A
C0Z0M0E0I1 A=1C B=0C05 D=9900 H=0005 S=00FE P=0161 JNC  015E
C0Z0M0E0I1 A=1C B=0C05 D=9900 H=0005 S=00FE P=015E INR  L
C0Z0M0E1I0 A=1C B=0C05 D=9900 H=0006 S=00FE P=015F SUI  0A
C0Z0M0E1I0 A=12 B=0C05 D=9900 H=0006 S=00FE P=0161 JNC  015E
C0Z0M0E1I0 A=12 B=0C05 D=9900 H=0006 S=00FE P=015E INR  L
C0Z0M0E0I0 A=12 B=0C05 D=9900 H=0007 S=00FE P=015F SUI  0A
C0Z0M0E0I1 A=08 B=0C05 D=9900 H=0007 S=00FE P=0161 JNC  015E
C0Z0M0E0I1 A=08 B=0C05 D=9900 H=0007 S=00FE P=015E INR  L
C0Z0M0E0I0 A=08 B=0C05 D=9900 H=0008 S=00FE P=015F SUI  0A
C1Z0M1E0I1 A=FE B=0C05 D=9900 H=0008 S=00FE P=0161 JNC  015E
C1Z0M1E0I1 A=FE B=0C05 D=9900 H=0008 S=00FE P=0164 ADI  0A
C1Z0M0E0I1 A=08 B=0C05 D=9900 H=0008 S=00FE P=0166 MOV  C,A
C1Z0M0E0I1 A=08 B=0C08 D=9900 H=0008 S=00FE P=0167 MOV  A,L
C1Z0M0E0I1 A=08 B=0C08 D=9900 H=0008 S=00FE P=0168 RRC
C0Z0M0E0I1 A=04 B=0C08 D=9900 H=0008 S=00FE P=0169 RRC
C0Z0M0E0I1 A=02 B=0C08 D=9900 H=0008 S=00FE P=016A RRC
C0Z0M0E0I1 A=01 B=0C08 D=9900 H=0008 S=00FE P=016B RRC
C1Z0M0E0I1 A=80 B=0C08 D=9900 H=0008 S=00FE P=016C ORA  C
C0Z0M1E1I0 A=88 B=0C08 D=9900 H=0008 S=00FE P=016D MOV  L,A
C0Z0M1E1I0 A=88 B=0C08 D=9900 H=0088 S=00FE P=016E RET
C0Z0M1E1I0 A=88 B=0C08 D=9900 H=0088 S=0100 P=013B MVI  D,99
C0Z0M1E1I0 A=88 B=0C08 D=9900 H=0088 S=0100 P=013D DAD  D
C0Z0M1E1I0 A=88 B=0C08 D=9900 H=9988 S=0100 P=013E SHLD 018A
C0Z0M1E1I0 A=88 B=0C08 D=9900 H=9988 S=0100 P=0141 LDA  0183
C0Z0M1E1I0 A=05 B=0C08 D=9900 H=9988 S=0100 P=0144 CALL 0152
C0Z0M1E1I0 A=05 B=0C08 D=9900 H=9988 S=00FE P=0152 MVI  H,FF
C0Z0M1E1I0 A=05 B=0C08 D=9900 H=FF88 S=00FE P=0154 INR  H
C0Z1M0E1I1 A=05 B=0C08 D=9900 H=0088 S=00FE P=0155 SUI  64
C1Z0M1E0I0 A=A1 B=0C08 D=9900 H=0088 S=00FE P=0157 JNC  0154
C1Z0M1E0I0 A=A1 B=0C08 D=9900 H=0088 S=00FE P=015A ADI  64
C1Z0M0E1I0 A=05 B=0C08 D=9900 H=0088 S=00FE P=015C MVI  L,FF
C1Z0M0E1I0 A=05 B=0C08 D=9900 H=00FF S=00FE P=015E INR  L
C1Z1M0E1I1 A=05 B=0C08 D=9900 H=0000 S=00FE P=015F SUI  0A
C1Z0M1E0I1 A=FB B=0C08 D=9900 H=0000 S=00FE P=0161 JNC  015E
C1Z0M1E0I1 A=FB B=0C08 D=9900 H=0000 S=00FE P=0164 ADI  0A
C1Z0M0E1I1 A=05 B=0C08 D=9900 H=0000 S=00FE P=0166 MOV  C,A
C1Z0M0E1I1 A=05 B=0C05 D=9900 H=0000 S=00FE P=0167 MOV  A,L
C1Z0M0E1I1 A=00 B=0C05 D=9900 H=0000 S=00FE P=0168 RRC
C0Z0M0E1I1 A=00 B=0C05 D=9900 H=0000 S=00FE P=0169 RRC
C0Z0M0E1I1 A=00 B=0C05 D=9900 H=0000 S=00FE P=016A RRC
C0Z0M0E1I1 A=00 B=0C05 D=9900 H=0000 S=00FE P=016B RRC
C0Z0M0E1I1 A=00 B=0C05 D=9900 H=0000 S=00FE P=016C ORA  C
C0Z0M0E1I0 A=05 B=0C05 D=9900 H=0000 S=00FE P=016D MOV  L,A
C0Z0M0E1I0 A=05 B=0C05 D=9900 H=0005 S=00FE P=016E RET
C0Z0M0E1I0 A=05 B=0C05 D=9900 H=0005 S=0100 P=0147 SHLD 018C
C0Z0M0E1I0 A=05 B=0C05 D=9900 H=0005 S=0100 P=014A JMP  016F*016F
Виводимо вміст комірок пам'яті в які ми зберігали дані:
-x
C0Z0M0E1I0 A=05 B=0C05 D=9900 H=0005 S=0100 P=016F HLT
-d180,18f
0180 62 41 0C 05 98 00 23 35 99 58 88 99 05 00 00 00 bA....#5.X......
LAB6B.ASM:
Після компілювання і лінкування програми завантажуємо її у відлагоджувач і перевіряємо чи знаходиться наша програма в пам'яті:
F:[cpm] d lab6b.com
DDT VERS 1.0
NEXT  PC
0180 0100
-d100
0100 21 62 41 22 80 01 21 0C 05 22 82 01 21 98 00 22 !bA"..!.."..!.."
0110 84 01 21 23 35 22 86 01 21 99 58 22 88 01 21 88 ..!#5"..!.X"..!.
0120 99 22 8A 01 21 05 00 22 8C 01 2A 84 01 EB 2A 87 ."..!.."..*...*.
0130 01 19 22 90 01 CD 5A 01 22 A0 01 EB 2A 8A 01 19 .."...Z."...*...
0140 22 92 01 CD 5A 01 22 A2 01 EB 2A 8C 01 19 22 94 "...Z."...*...".
0150 01 CD 5A 01 22 A4 01 C3 69 01 F6 00 7D 27 6F 7C ..Z."...i...}'o|
0160 D2 64 01 3C F6 00 27 67 C9 76 00 00 00 00 00 00 .d.<..'g.v......
0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0180 1A 84 12 13 C3 69 01 D1 2E 00 E9 0E 10 CD 05 00 .....i..........
0190 32 5F 1E C9 21 66 1E 70 2B 71 2A 65 1E EB 0E 11 2_..!f.p+q*e....
01A0 CD 05 00 32 5F 1E C9 11 00 00 0E 12 CD 05 00 32 ...2_..........2
01B0 5F 1E C9 21 68 1E 70 2B 71 2A 67 1E EB 0E 13 CD _..!h.p+q*g.....
Для виконання програми і виведення результатів її роботи виконуємо покрокове трасування програми:
-t42
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0000 S=0100 P=0100 LXI  H,4162
C0Z0M0E0I0 A=00 B=0000 D=0000 H=4162 S=0100 P=0103 SHLD 0180
C0Z0M0E0I0 A=00 B=0000 D=0000 H=4162 S=0100 P=0106 LXI  H,050C
C0Z0M0E0I0 A=00 B=0000 D=0000 H=050C S=0100 P=0109 SHLD 0182
C0Z0M0E0I0 A=00 B=0000 D=0000 H=050C S=0100 P=010C LXI  H,0098
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0098 S=0100 P=010F SHLD 0184
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0098 S=0100 P=0112 LXI  H,3523
C0Z0M0E0I0 A=00 B=0000 D=0000 H=3523 S=0100 P=0115 SHLD 0186
C0Z0M0E0I0 A=00 B=0000 D=0000 H=3523 S=0100 P=0118 LXI  H,5899
C0Z0M0E0I0 A=00 B=0000 D=0000 H=5899 S=0100 P=011B SHLD 0188
C0Z0M0E0I0 A=00 B=0000 D=0000 H=5899 S=0100 P=011E LXI  H,9988
C0Z0M0E0I0 A=00 B=0000 D=0000 H=9988 S=0100 P=0121 SHLD 018A
C0Z0M0E0I0 A=00 B=0000 D=0000 H=9988 S=0100 P=0124 LXI  H,0005
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0005 S=0100 P=0127 SHLD 018C
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0005 S=0100 P=012A LHLD 0184
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0098 S=0100 P=012D XCHG
C0Z0M0E0I0 A=00 B=0000 D=0098 H=0000 S=0100 P=012E LHLD 0187
C0Z0M0E0I0 A=00 B=0000 D=0098 H=9935 S=0100 P=0131 DAD  D
C0Z0M0E0I0 A=00 B=0000 D=0098 H=99CD S=0100 P=0132 SHLD 0190
C0Z0M0E0I0 A=00 B=0000 D=0098 H=99CD S=0100 P=0135 CALL 015A
C0Z0M0E0I0 A=00 B=0000 D=0098 H=99CD S=00FE P=015A ORI  00
C0Z1M0E1I0 A=00 B=0000 D=0098 H=99CD S=00FE P=015C MOV  A,L
C0Z1M0E1I0 A=CD B=0000 D=0098 H=99CD S=00FE P=015D DAA
C1Z0M0E1I1 A=33 B=0000 D=0098 H=99CD S=00FE P=015E MOV  L,A
C1Z0M0E1I1 A=33 B=0000 D=0098 H=9933 S=00FE P=015F MOV  A,H
C1Z0M0E1I1 A=99 B=0000 D=0098 H=9933 S=00FE P=0160 JNC  0164
C1Z0M0E1I1 A=99 B=0000 D=0098 H=9933 S=00FE P=0163 INR  A
C1Z0M1E1I0 A=9A B=0000 D=0098 H=9933 S=00FE P=0164 ORI  00
C0Z0M1E1I0 A=9A B=0000 D=0098 H=9933 S=00FE P=0166 DAA
C1Z1M0E1I1 A=00 B=0000 D=0098 H=9933 S=00FE P=0167 MOV  H,A
C1Z1M0E1I1 A=00 B=0000 D=0098 H=0033 S=00FE P=0168 RET
C1Z1M0E1I1 A=00 B=0000 D=0098 H=0033 S=0100 P=0138 SHLD 01A0
C1Z1M0E1I1 A=00 B=0000 D=0098 H=0033 S=0100 P=013B XCHG
C1Z1M0E1I1 A=00 B=0000 D=0033 H=0098 S=0100 P=013C LHLD 018A
C1Z1M0E1I1 A=00 B=0000 D=0033 H=9988 S=0100 P=013F DAD  D
C0Z1M0E1I1 A=00 B=0000 D=0033 H=99BB S=0100 P=0140 SHLD 0192
C0Z1M0E1I1 A=00 B=0000 D=0033 H=99BB S=0100 P=0143 CALL 015A
C0Z1M0E1I1 A=00 B=0000 D=0033 H=99BB S=00FE P=015A ORI  00
C0Z1M0E1I0 A=00 B=0000 D=0033 H=99BB S=00FE P=015C MOV  A,L
C0Z1M0E1I0 A=BB B=0000 D=0033 H=99BB S=00FE P=015D DAA
C1Z0M0E1I1 A=21 B=0000 D=0033 H=99BB S=00FE P=015E MOV  L,A
C1Z0M0E1I1 A=21 B=0000 D=0033 H=9921 S=00FE P=015F MOV  A,H
C1Z0M0E1I1 A=99 B=0000 D=0033 H=9921 S=00FE P=0160 JNC  0164
C1Z0M0E1I1 A=99 B=0000 D=0033 H=9921 S=00FE P=0163 INR  A
C1Z0M1E1I0 A=9A B=0000 D=0033 H=9921 S=00FE P=0164 ORI  00
C0Z0M1E1I0 A=9A B=0000 D=0033 H=9921 S=00FE P=0166 DAA
C1Z1M0E1I1 A=00 B=0000 D=0033 H=9921 S=00FE P=0167 MOV  H,A
C1Z1M0E1I1 A=00 B=0000 D=0033 H=0021 S=00FE P=0168 RET
C1Z1M0E1I1 A=00 B=0000 D=0033 H=0021 S=0100 P=0146 SHLD 01A2
C1Z1M0E1I1 A=00 B=0000 D=0033 H=0021 S=0100 P=0149 XCHG
C1Z1M0E1I1 A=00 B=0000 D=0021 H=0033 S=0100 P=014A LHLD 018C
C1Z1M0E1I1 A=00 B=0000 D=0021 H=0005 S=0100 P=014D DAD  D
C0Z1M0E1I1 A=00 B=0000 D=0021 H=0026 S=0100 P=014E SHLD 0194
C0Z1M0E1I1 A=00 B=0000 D=0021 H=0026 S=0100 P=0151 CALL 015A
C0Z1M0E1I1 A=00 B=0000 D=0021 H=0026 S=00FE P=015A ORI  00
C0Z1M0E1I0 A=00 B=0000 D=0021 H=0026 S=00FE P=015C MOV  A,L
C0Z1M0E1I0 A=26 B=0000 D=0021 H=0026 S=00FE P=015D DAA
C0Z0M0E0I0 A=26 B=0000 D=0021 H=0026 S=00FE P=015E MOV  L,A
C0Z0M0E0I0 A=26 B=0000 D=0021 H=0026 S=00FE P=015F MOV  A,H
C0Z0M0E0I0 A=00 B=0000 D=0021 H=0026 S=00FE P=0160 JNC  0164
C0Z0M0E0I0 A=00 B=0000 D=0021 H=0026 S=00FE P=0164 ORI  00
C0Z1M0E1I0 A=00 B=0000 D=0021 H=0026 S=00FE P=0166 DAA
C0Z1M0E1I0 A=00 B=0000 D=0021 H=0026 S=00FE P=0167 MOV  H,A
C0Z1M0E1I0 A=00 B=0000 D=0021 H=0026 S=00FE P=0168 RET
C0Z1M0E1I0 A=00 B=0000 D=0021 H=0026 S=0100 P=0154 SHLD 01A4
C0Z1M0E1I0 A=00 B=0000 D=0021 H=0026 S=0100 P=0157 JMP  0169*0169
Виводимо результат роботи програми та вміст комірок пам'яті в які ми зберігали дані:
-x
C0Z1M0E1I0 A=00 B=0000 D=0021 H=0026 S=0100 P=0169 HLT
-d180,18d
0180 62 41 0C 05 98 00 23 35 99 58 88 99 05 00 bA....#5.X....
-d190,195
0190 CD 99 BB 99 26 00 ....&.
-d1a0,1a5
01A0 33 00 21 00 26 00 3.!.&.
КАРТА ПАМЯТІ
Адреса
Дані
Коментар
H
D
B
H
D
B
180
384
1 1000 0000
62
98
0110 0010
Дане 1 = 98
181
385
1 1000 0001
41
65
0100 0001
Дане 2 = 65
182
386
1 1000 0010
0C
12
 0000 1100
Дане 3 = 12
183
387
1 1000 0011
05
5
0000 0101
Дане 4 = 5
184
388
1 1000 0100
98
152
1001 1000
Дане 1 (BCD) = 0098h
185
389
1 1000 0101
00
0
0000 0000
186
390
1 1000 0110
23
35
0010 0011
Дане 2 (доп.) = 23h
187
391
1 1000 0111
35
53
0011 0101
Дане 2 (BCD)доп = 9935h
188
392
1 1000 1000
99
153
1001 1001
189
393
1 1000 1001
58
88
0101 1000
Дане 3 (доп.) = 58h
18A
394
1 1000 1010
88
136
1000 1000
Дане 3 (BCD)доп = 9988h
18B
395
1 1000 1011
99
153
1001 1001
18C
396
1 1000 1100
05
5
0000 0101
Дане 4 (BCD) = 0005h
18D
397
1 1000 1101
00
0
0000 0000
190
400
1 1001 0000
CD
205
1100 1101
Результат 1
0098h + 9935h = 99CDh
191
401
1 1001 0001
99
153
1001 1001
192
402
1 1001 0010
BB
187
1011 1011
Результат 2
99CDh + 9988h = 99BBh
193
403
1 1001 0011
99
153
1001 1001
194
404
1 1001 0100
26
38
0010 0110
Результат 3
99BBh + 0005h = 0026h
195
405
1 1001 0101
00
0
0000 0000
1A0
416
1 1010 0000
33
51
0011 0011
DAA 99CDh = 0033h
1A1
417
1 1010 0001
00
0
0000 0000
1A2
418
1 1010 0010
21
33
0010 0001
DAA 99BBh = 0021h
1A3
419
1 1010 0011
00
0
0000 0000
1A4
420
1 1010 0100
26
38
0010 0110
DAA 0026h = 0026h
1A5
421
1 1010 0101
00
0
0000 0000
PRN ФАЙЛИ
LAB6A.ASM:
0100	ORG 100H	; початок програми
; заносимо дані в пам’ять                
0100 3E62	MVI A,98	;A:=98
0102 328001	STA 180H	;заносимо А в пам’ять A->(180h)
0105 3E41	MVI A,65	;A:=65
0107 328101	STA 181H	;A->(181h)
010A 3E0C	MVI A,12	;A:=12
010C 328201	STA 182H	;A->(182h)
010F 3E05	MVI A,5	;A:=05
0111 328301	STA 183H	;A->(183h)
; переводимо 98 в BCD-формат                
0114 3A8001	LDA 180H	;завантажуєм А з пам'яті A<-(180h)
0117 CD5201	CALL PEREVID ; виклик підпрограми преведення
011A 228401	SHLD 184H	;зберігаємо HL в пам'яті HL->(184h)
; переводимо -65 в доповняльний код та BCD-формат
011D 3A8101	LDA 181H	;завантажуєм А з пам'яті A<-(181h)
0120 CD4D01	CALL DOPOV ; виклик підпрограми
0123 328601	STA 186H	;зберігаємо А в пам'яті А->(186h)
0126 CD5201	CALL PEREVID ; виклик підпрограми преведення
0129 1699	MVI D,99H	; D<-99h 
012B 19	DAD D	; HL<- HL + DE 
012C 228701	SHLD 187H	;зберігаємо HL в пам'яті HL->(187h)
; переводимо -12 в доповняльний код та BCD-формат
012F 3A8201	LDA 182H	;завантажуєм А з пам'яті A<-(182h)
0132 CD4D01	CALL DOPOV ; виклик підпрограми
0135 328901	STA 189H	;зберігаємо А в пам'яті А->(189h)
0138 CD5201	CALL PEREVID ; виклик підпрограми преведення
013B 1699	MVI D,99H	; D<-99h 
013D 19	DAD D	; HL<- HL + DE 
013E 228A01	SHLD 18AH	;зберігаємо HL в пам'яті HL->(18Аh)
; переводимо 5 в BCD-формат                
0141 3A8301	LDA 183H	;завантажуєм А з пам'яті A<-(183h)
0144 CD5201	CALL PEREVID ; виклик підпрограми преведення
0147 228C01	SHLD 18CH	;зберігаємо HL в пам'яті HL->(18Сh)
; вихід з програми                
014A C36F01	JMP EXIT	; прехід на мітку виходу
; підпрограма переведення числа в доповняльний код                
014D 47	DOPOV:	MOV B,A	; В<-A
014E 3E64		MVI A,100	; А<100
0150 90		SUB B			; А<-A – В
0151 C9		RET			; повернення з підпрограми
; підпрограма переведення числа в BCD-формат
0152 26FF	PEREVID:	MVI H,-1	; H ← -1
0154 24		L100:	INR H	; H ← H + 1
0155 D664				SUI 100	; А<-A – 100
0157 D25401		JNC L100	; перехід
015A C664		ADI 100	; А<-A + 100
015C 2EFF		MVI L,-1	; L ← -1
015E 2C		L10:	INR L	; L ← L + 1
015F D60A				SUI 10; А<-A – 10
0161 D25E01		JNC L10	; перехід
0164 C60A		ADI 10		; А<-A + 10
0166 4F		MOV C,A	; С<-A
0167 7D		MOV A,L	; А<-L
0168 0F		RRC			; зсув вправо 
0169 0F		RRC			; зсув вправо 
016A 0F		RRC			; зсув вправо 
016B 0F		RRC			; зсув вправо 
016C B1		ORA C		; А<-А v C
016D 6F		MOV L,A	; L<-А
016E C9		RET			; повернення з підпрограми
; кінець програми
016F 76	EXIT:	HLT	; вихід з програми
LAB6B.ASM:
0100	ORG 100H			; початок програми
; заносимо дані в пам’ять                
0100 216241	LXI H,4162H		; HL<-4162h
0103 228001	SHLD 180H	;заносимо HL в пам’ять HL->(180h)
0106 210C05	LXI H,050CH	; HL<-050Ch
0109 228201	SHLD 182H	;заносимо HL в пам’ять HL->(182h)
010C 219800	LXI H,0098H	; HL<-0098h
010F 228401	SHLD 184H	;заносимо HL в пам’ять HL->(184h)
0112 212335	LXI H,3523H	; HL<-3523h
0115 228601	SHLD 186H	;заносимо HL в пам’ять HL->(186h)
0118 219958	LXI H,5899H	; HL<-5899h
011B 228801	SHLD 188H	;заносимо HL в пам’ять HL->(188h)
011E 218899	LXI H,9988H	; HL<-9988h
0121 228A01	SHLD 18AH	;заносимо HL в пам’ять HL->(18Ah)
0124 210500	LXI H,0005H	; HL<-0005h
0127 228C01	SHLD 18CH	;заносимо HL в пам’ять HL->(18Ch)
; виконуємо додавання                
012A 2A8401	LHLD 184H	;завантажуєм HL з пам'яті HL<-(184h)
012D EB	XCHG		;HL<->DE
012E 2A8701	LHLD 187H	;завантажуєм HL з пам'яті HL<-(187h)
0131 19	DAD D		; HL<- HL + DE 
0132 229001	SHLD 190H	;заносимо HL в пам’ять HL->(190h)
0135 CD5A01	CALL DOPOV	; виклик підпрограми
0138 22A001	SHLD 1A0H	;заносимо HL в пам’ять HL->(1A0h)
; виконуємо додавання
013B EB	XCHG		;HL<->DE
013C 2A8A01	LHLD 18AH	;завантажуєм HL з пам'яті HL<-(18Ah)
013F 19	DAD D		; HL<- HL + DE 
0140 229201	SHLD 192H	;заносимо HL в пам’ять HL->(192h)
0143 CD5A01	CALL DOPOV	; виклик підпрограми
0146 22A201	SHLD 1A2H	;заносимо HL в пам’ять HL->(1A2h)
; виконуємо додавання                
0149 EB	XCHG		;HL<->DE
014A 2A8C01	LHLD 18CH	;завантажуєм HL з пам'яті HL<-(18Ch)
014D 19	DAD D		; HL<- HL + DE 
014E 229401	SHLD 194H	;заносимо HL в пам’ять HL->(194h)
0151 CD5A01	CALL DOPOV	; виклик підпрограми
0154 22A401	SHLD 1A4H	;заносимо HL в пам’ять HL->(1A4h)
; вихід з програми                
0157 C36901	JMP EXIT		; прехід на мітку виходу
; підпрограма десяткового доповнення результату
015A F600	DOPOV:	ORI 0		; A<-A v 0
015C 7D		MOV A,L	; A<-L
015D 27		DAA		; десяткове доповнення А
015E 6F		MOV L,A	; L<-A
015F 7C		MOV A,H	; A<-H
0160 D26401		JNC COR	;  перехід
0163 3C		INR A		; A<-A + 1
0164 F600		COR: ORI 0	; A<-A v 0
0166 27		DAA		; десяткове доповнення А
0167 67		MOV H,A	; H<-A
0168 C9		RET		; повернення з підпрограми
; кінець програми
016F 76	EXIT:	HLT		; вихід з програми
ВИСНОВОК:
Під час виконання лабораторної роботи я вивчив алгоритми виконання операцій додавання та віднімання двійково-кодованих десяткових чисел для однокристального МП КР580, набув практичних навиків складання та налагоджування програм з використанням цих алгоритмів. Мною була написана програма, яка виконує перетворення чисел  в упаковане десяткове число, а також здійснює арифметичні операції над даними числами.