Вивчити алгоритми виконання операцій додавання та віднімання двійково-кодованих десяткових чисел для однокристального МП КР580

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2007
Тип роботи:
Звіт
Предмет:
Архітектура комп'ютерів
Група:
КН

Частина тексту файла (без зображень, графіків і формул):

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

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!