МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Кафедра САПР
ЗВІТ
ДО ЛАБОРАТОРНОЇ РОБОТИ № 4
На тему: «Організація програм, підпрограм і способи передачі параметрів в одно кристальному МП КР580»
З дисципліни : «Архітектура комп’ютерів»
ЛЬВІВ – 2007
Тема роботи: Організація програм, підпрограм і способи передачі параметрів в одно кристальному МП КР580.
Мета роботи: Вивчити команди переходів, виклику і повернення із підпрограми, способи передачі параметрів і отримати практичні навики програмування з використанням підпрограм.
ТЕОРЕТИЧНІ ВІДОМОСТІ
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ЛАБОРАТОРНЕ ЗАВДАННЯ:
Через акумулятор організувавши цикл ввести дані 21 – 26. Виконати алгоритмічні операції організувавши цикл 1 + 2 + 3 + 4 + 5 + 6, якщо 1-е дане парне, в протилежному випадку 6 – 5 – 4 – 3 – 2 – 1. Результат зберегти за адресою 360h.
ХІД РОБОТИ:
Для реалізації поставленого завдання була розроблена наступна програма:
ORG 100H
; заносимо дані в пам’ять
MVI B,6
MVI A,21
PUSH A
LXI H,0150h
VVID: MOV M,A
INR A
INX H
DCR B
JNZ VVID
; перевіряємо на парність
LXI D,0160h
POP A
RRC
JNC PARNE
JC NEPARNE
; якщо парне здійснюємо додавання 1 + 2 + 3 + 4 + 5 + 6
PARNE: LXI H,0150h
MOV A,M
MVI B,5
PLUS: INX H
ADD M
STAX D
INX D
DCR B
JNZ PLUS
STA 360h
JMP EXIT
; якщо не парне здійснюємо віднімання 6 – 5 – 4 – 3 – 2 – 1
NEPARNE: LXI H,0155h
MOV A,M
MVI B,5
MINUS: DCX H
SUB M
STAX D
INX D
DCR B
JNZ MINUS
STA 360h
JMP EXIT
EXIT: HLT
Після компілювання і лінкування програми завантажуємо її у відлагоджувач і перевіряємо чи знаходиться наша програма в пам'яті:
Для виконання програми і виведення результатів її роботи виконуємо покрокове трасування програми:
Виводимо вміст комірок пам'яті в які ми зберігали дані:
КАРТА ПАМЯТІ
Адреса
Дані
Коментар
H
D
B
H
D
B
150
320
1 0100 0000
15
21
0001 0101
Дане 1
151
321
1 0100 0001
16
22
0001 0110
Дане 2
152
322
1 0100 0010
17
23
0001 0111
Дане 3
153
323
1 0100 0011
18
24
0001 1000
Дане 4
154
324
1 0100 0100
19
25
0001 1001
Дане 5
155
325
1 0100 0101
1A
26
0001 1010
Дане 6
160
352
1 0110 0000
1 + 2
01
1
0000 0001
6-5
161
353
1 0110 0001
1+2+3
FE9
-23
1 1110 1001
6-5-4
162
354
1 0110 0010
1+2+3+4
FD2
-46
1 1101 0010
6-5-4-3
163
355
1 0110 0011
1+2+3+4+5
FBC
-68
1 1011 1100
6-5-4-3-2
164
356
1 0110 0100
1+2+3+4+5+6
FA7
-89
1 1010 0111
6-5-4-3-2-1
360
864
11 0110 0000
Якщо дане 1 парне:
1+2+3+4+5+6
FA7
-89
1 1010 0111
Якщо дане 1 непарне:
6-5-4-3-2-1
PRN ФАЙЛ:
0100 ORG 100H
0100 0606 MVI B,6
0102 3E15 MVI A,21
0104 F5 PUSH A
0105 215001 LXI H,0150H
0108 77 VVID: MOV M,A
0109 3C INR A
010A 23 INX H
010B 05 DCR B
010C C20801 JNZ VVID
010F 116001 LXI D,0160H
0112 F1 POP A
0113 0F RRC
0114 D21A01 JNC PARNE
0117 DA2E01 JC NEPARNE
011A 215001 PARNE: LXI H,0150H
011D 7E MOV A,M
011E 0605 MVI B,5
0120 23 PLUS: INX H
0121 86 ADD M
0122 12 STAX D
0123 13 INX D
0124 05 DCR B
0125 C22001 JNZ PLUS
0128 326003 STA 360H
012B C34201 JMP EXIT
012E 215501 NEPARNE: LXI H,0155H
0131 7E MOV A,M
0132 0605 MVI B,5
0134 2B MINUS: DCX H
0135 96 SUB M
0136 12 STAX D
0137 13 INX D
0138 05 DCR B
0139 C23401 JNZ MINUS
013C 326003 STA 360H
013F C34201 JMP EXIT
0142 76 EXIT: HLT
ВИСНОВОК:
Під час виконання лабораторної роботи я вивчив команди переходів, виклику і повернення із підпрограми, способи передачі параметрів і отримав практичні навики програмування з використанням підпрограм. Мною була створена програма яка виконує перевірку введеного даного на парність, і в залежності від того парне чи непарне дане виконує різні дії.