МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
Національній університет "Львівська політехніка"
ЗАСОБИ КОМПІЛЯЦІЇ, ЛІНКУВАННЯ І НАЛАГОДЖЕННЯ ПРОГРАМ В СР/М ДЛЯ МІКРОПРОЦЕСОРА Intel 8080 (КР580ВМ80А)
Звіт
до лабораторної роботи №1
з курсу "Комп'ютери та мікропроцесорні системи"
Виконав:
Студент групи КН-3
ЛЬВІВ 2008
Тема: ЗАСОБИ КОМПІЛЯЦІЇ , ЛІНКУВАННЯ І НАЛАГОДЖЕННЯ ПРОГРАМ В СР/М ДЛЯ МІКРОПРОЦЕСОРА Intel 8080 (КР580ВМ80А.
Мета: Вивчити засоби компіляції, лінкування і налогоджування програм за допомогою компілятора СР/М для мікропроцесора Intel 8080 (КР580ВМ80А).
1. Лабараторне завдання
1. Набрати, скомпілювати та запустити програму задану викладачем .
2. Опрацювати осноні команди відлагоджувача програм СР/М.
3. Карта пам’яті
4.Текст програми
org 100h
mvi b,89
mov a,b
sta 250h
mvi a,18
sta 251h
add b
sta 252h
nop
hlt
5.Текст .prn – файлу
0100 ORG 100H
0100 0659 MVI B,89 ; ввожу перше значення
0102 78 MOV A,B ; заношу його в регістр А
0103 325002 STA 250H;
0106 3E0A MVI A,18 ; ввожу друге значення
0108 325102 STA 251H
010B 80 ADD B;сумую два значення
010C 325202 STA 252H
010F 00 NOP
6.Результати роботи
DIR (Роздрук списку файлів)
F:[cpm] dir
F| 8080LIST TXT | C EXE | CPM-DDTR TXT | CPM-KOMR TXT
F| D COM | L COM | M COM | LABA1 ASM
F| LABA2S ASM | LAB2 ASM | LABA1 PRN | LABA1 HEX
F| LABA1 SYM | LABA1 COM | LABA2S PRN | LABA2S HEX
F| LABA2S SYM | LABA2S COM
F:[cpm] dir *.asm
F| LABA1 ASM | LABA2S ASM | LAB2 ASM
F:[cpm] dir *.*
F| 8080LIST TXT | C EXE | CPM-DDTR TXT | CPM-KOMR TXT
F| D COM | L COM | M COM | LABA1 ASM
F| LABA2S ASM | LAB2 ASM | LABA1 PRN | LABA1 HEX
F| LABA1 SYM | LABA1 COM | LABA2S PRN | LABA2S HEX
F| LABA2S SYM | LABA2S COM
F:[cpm] dir l.*
F| L COM
TYPE (Проглянути текстовий файл):
F:[cpm] type laba1.prn
♀ 0100 ORG 100H
0100 0659 MVI B,89
0102 78 MOV A,B
0103 325002 STA 250H
0106 3E12 MVI A,18
0108 325102 STA 251H
010B 80 ADD B
010C 325202 STA 252H
010F 00 NOP
REN (Зміна назви файлу)
F:[cpm] ren ddd.txt=ggg.txt
F:[cpm] dir
F| 8080LIST TXT | C EXE | CPM-DDTR TXT | CPM-KOMR TXT
F| D COM | L COM | M COM | LABA1 ASM
F| LABA2S ASM | LAB2 ASM | LABA1 PRN | LABA1 HEX
F| LABA1 SYM | LABA1 COM | LABA2S PRN | LABA2S HEX
F| LABA2S SYM | LABA2S COM | DDD TXT
F:[cpm]
SAVE (Збереження оперативної пам'яті у файл на диску):
F:[cpm] save 1 ddd.txt
F:[cpm] type ddd.txt
F:[cpm]
ERA (Затерти):
F:[cpm] era ddd.txt
F:[cpm] dir
F| 8080LIST TXT | C EXE | CPM-DDTR TXT | CPM-KOMR TXT
F| D COM | L COM | M COM | LABA1 ASM
F| LABA2S ASM | LAB2 ASM | LABA1 PRN | LABA1 HEX
F| LABA1 SYM | LABA1 COM | LABA2S PRN | LABA2S HEX
F| LABA2S SYM | LABA2S COM
D Вивести тег (192 комірок) пам'яті у шістнадцятковому форматі вміст з текучої та подальших комірок;
-d
0100 01 BC 0F C3 3D 01 20 20 20 20 20 20 20 20 20 20 ....=.
0110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0130 44 44 54 20 56 45 52 53 20 31 2E 30 24 31 00 02 DDT VERS 1.0$1..
0140 C5 C5 11 30 01 0E 09 CD 05 00 C1 21 07 00 7E 3D ...0.......!..~=
0150 90 57 1E 00 D5 21 00 02 78 B1 CA 65 01 0B 7E 12 .W...!..x..e..~.
0160 13 23 C3 58 01 D1 C1 E5 62 78 B1 CA 87 01 0B 7B .#.X....bx.....{
0170 E6 07 C2 7A 01 E3 7E 23 E3 6F 7D 17 6F D2 83 01 ...z..~#.o}.o...
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.....
D start Вивести тег пам'яті у шістнадцятковому форматі, починаючи з комірки, яка розмищена за вказаною адресою ("start");
-d100
0100 01 BC 0F C3 3D 01 20 20 20 20 20 20 20 20 20 20 ....=.
0110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0130 44 44 54 20 56 45 52 53 20 31 2E 30 24 31 00 02 DDT VERS 1.0$1..
0140 C5 C5 11 30 01 0E 09 CD 05 00 C1 21 07 00 7E 3D ...0.......!..~=
0150 90 57 1E 00 D5 21 00 02 78 B1 CA 65 01 0B 7E 12 .W...!..x..e..~.
0160 13 23 C3 58 01 D1 C1 E5 62 78 B1 CA 87 01 0B 7B .#.X....bx.....{
0170 E6 07 C2 7A 01 E3 7E 23 E3 6F 7D 17 6F D2 83 01 ...z..~#.o}.o...
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.....
D start,end Вивести комірки пам'яті у шістнадцятковому форматі, починаючи з адреси "start" і закінчуючи адресою "end";
-d100,120
0100 01 BC 0F C3 3D 01 20 20 20 20 20 20 20 20 20 20 ....=.
0110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0120 20
F start,end,data Записати у файл усі комірки пам'яті з адреси "start" до адреси " end " шістнадцяткове значення " data ";
-f100,110,0
-d100,120
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0110 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0120 20
Ifilename.ext Утворити блок управління файлом і записати його під ім'ям "filename.ext " для того, щоб можна було завантажити файл з таким ім'ям в оперативну пам'ять за допомогою команли " R ";
-ilaba1.com
R Завантажити в оперативну пам'ять вміст файлу, ім'я якого вказане в команді "I" починаючи з текучої комірки;
-r
NEXT PC
0180 0100
R start Завантажити в оперативну пам'ять вміст файлу, ім'я якого вказане в команді "I" починаючи з комірки за адресою "start";
-r100
NEXT PC
0180 0100
L Реасемблювати і вивести на консоль вміст подальших комірок пам'яті починаючи з текучої комірки;
-l
0100 MVI B,59
0102 MOV A,B
0103 STA 0250
0106 MVI A,12
0108 STA 0251
010B ADD B
010C STA 0252
010F NOP
0110 HLT
0111 NOP
0112 NOP
L start Реасемблювати і вивести на консоль вміст подальших комірок пам'яті починаючи з комірки за адресою "start";
-l100
0100 MVI B,59
0102 MOV A,B
0103 STA 0250
0106 MVI A,12
0108 STA 0251
010B ADD B
010C STA 0252
010F NOP
0110 HLT
0111 NOP
0112 NOP
S start Вивести в шістнадцятковому форматі і змінити вміст комірок пам'яті за адресою " start ", продовжуючи обробку подальших комірок пам'яті до вводу символа ".";
-s100
0100 06
0101 59
0102 78 .
A start Вставити, починаючи з адреси "start", оператор мови Асемблера. Продовжувати обробку подальших комірок пам'яті до вводу символа ".";
-a100
0100 mov a,b
0101 add c
0102 .
X Вивести текучий вміст регістрів центрального процесора;
-x
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0000 S=0100 P=0100 MOV A,B
Xregister Вивести вміст регістра "register" центрального процесора.
-xb
B=0000
Tnumber Трасування, виконання "number" машинних інструкцій, роздрукувати вміст регістрів центрального процесора після виконання кожної інструкції;
-t3
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0000 S=0100 P=0100 MOV A,B
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0000 S=0100 P=0101 ADD C
C0Z1M0E1I0 A=00 B=0000 D=0000 H=0000 S=0100 P=0102 MOV A,B*0103
Unumber Виконати "number" машинних інструкцій і після їх завершення вивести вміст регістрів центрального процесора;
-u5
C0Z1M0E1I0 A=00 B=0000 D=0000 H=0000 S=0100 P=0103 STA 0250*010F
G Виконати усю програму без переривань, починаючи з текучої адреси;
-g
*Execution halted
Висновок: на даній лабораторній роботі я ознайомився із засобами компіляції,лінкування і налагодження програм в СРМ для мікропроцесора Intel 8080.На практиці застосував усі можливості даного відлагоджувача.