Міністерство освіти України
Національний університет „Львівська політехніка”
кафедра електроприводу
Лабораторна робота №4
на тему:
„Дослідження виконання окремих команд
і простих програм мікропроцесора КР580ИК80 ”
з дисципліни „Мікропроцесорні засоби та ситеми ”
Львів 2003
Мета роботи: ознайомитися з командами МП КР580ИК80А , дослідити виконання окремих команд Асемблера, вивчити способи адресації , складання , написання та реалізації програм.
Програма роботи:
1. Перевірити виконання команд переміщення даних. Для цього задану послідовність команд записати за формою, наведеною в табл..30 для конкретних реєстрів і адрес. Приклад запису програми поданий для перших двох команд. Як видно з прикладу, команди необхідно розмістити в оперативній пам’яті, починаючи з адреси 8200Н, записати їх війкові і шістнадцяткові коди і дати потрібні пояснення. Виконати програму в кроковому режимі (натискаючи клавішу STEP), перевіряючи результати виконання перших трьох команд перевірити вміст реєстрів R1, R2, і R3:
MVI R1,D8 MOV R2,R1 MOV R3,R2 LHLD ADR1
SHLD ADR2 LXI D,ADR3 XCHG MOV R,M HLT
Адреса
16-й
Мнемокод
Пояснення
8200
3Е
MVI A, 40
A40H
(A=40, REG A - перевірка).
8201
40
8202
47
MOV B, A
BA (B=40, REG B - перевірка).
8204
8205
8206
2A
54
01
LHLD 0154
L(0154) ,H(0155) (за адресою 0154 чи-сло B2, а за 0155 – C2, відповідно L=B2, a H=C2).
8207
22
SHLD 8405
(8405) L (8406) H
8208
05
8209
84
820A
11
LXI D,8506
D85, E06
(D=85, E=02).
820B
06
820C
85
820D
EB
XCHG
HD, LE
820E
7E
MOV A, M
A(HL)
820F
E7
RST
ЗУПИНКА
2. Перевірити виконання команд керування стеком. Налагодити стек, для чого в реєстр-покажчик стека командою LXI SP B2 B3 занести адресу вершини стека 83ЕОН. Попередньо з клавіатури, користуючись МОНІТОРОМ, занести в реєстрові пари ВС і DЕ будь-які двобаштові операнди. Після цього записати програму, яка складається з команд запису в стек вмісту реєстрових пар ВС і DЕ і читання зі стека, виконати її, контролюючи проміжні результати:LXI SP B2 B3 PUSH B PUSH D (контроль вмісту SР і стека) РОР Н РОР В (контроль вмісту НL, ВС і SР).
Адреса
16-й
Мнемокод
Пояснення
8200
31
LXI SP 83E0
SP=83E0
8201
E0
8202
83
8203
21
PUSH B
(SP-1)B, (SP-2)C (83DF)=11, (83DE)=22
8204
AB
PUSH D
(SP-3)D, (SP-4)E (83DD)=33, (83DC)=44
8205
2C
POP H
L(SP-4), H(SP-3) L=44, H=33
8206
E5
POP D
E(SP-2), D(SP-1) E=22, D=11
8207
8208
39
E7
RST
Зупинка
3. Скласти і дослідити таку програму: налагодити стек 83ЕОН, завантажити в НL двобайтовий операнд, після цього переслати його в стек, додати вміст SP і HL, проконтролювати результати в HL і стека.
Адреса
16-й
Мнемокод
Пояснення
8200
31
LXI SP 83E0
SP=83E0
8201
E0
8202
83
8203
21
LXI HL 01A0
HL=01A0
8204
A0
8205
01
8206
E5
PUSH H
(SP-1)H, (SP-2)L
8207
39
DAD SP
HLHL+SP
8208
76
RST
Зупинка
4. Дослідити програму (табл..31) додавання без перенесення і віднімання без позичання однобайтових операндів (ADR 4), (ADR5), (ADR 6), тобто (ADR4) + (ADR5) – (ADR6), а результат записати за адресою ADR7. Перед виконанням програми з операнди записати в пам’ять з клавіатури. Проконтролювати окремо: результат додавання і вмісту реєстру ознак, віднімання і вмісту реєстру ознак. Програму виконати в кроковому режимі (“ОТЛАДКА”) і автоматичному (“ПРОГОН”). Під час виконання програми в автоматичному режимі замість команди зупинки HLT – код 76Н користуватися командою RST – код Е7Н.
Адреса
16-й
Мнемокод
Пояснення
8200
3A
LDA 0009
A(0009),A=2A
8201
09
8202
00
8203
21
LXIH 0119
HL0119, (0119)=1E
8204
19
8205
01
8206
86
ADD M
AA+(HL), A=48
8207
21
LXIH 00F5
HL00F5, (01F5)=C1
8208
F5
8209
00
820A
96
SUB M
AA-(HL), A=57
820B
92
STA 8413
(8413) A , (8413)=57
820C
13
820D
84
820E
E7
HLT
Зупинка
5. Дослідити програму (табл.32) додавання двох N – значних десяткових чисел NA і NB, виразивши їх у двійково – десятковому коді, а результат додавання записати за адресою числа NA. Нагадуємо, що для зображення десяткових чисел двійково – десятковим кодом кожну десяткову цифру необхідно замінити тетрадою (тетра – чотири) війкових чисел, наприклад : 27D 0010 0111. Значення доданків NA і NB наведено в табл.34. Доданки (операнди) розмістити в пам’яті побайтно: NA – починаючи з молодших розрядів з адреси 8400Н і вище, тобто 8400 – А0 , 8401 – А1 і т.п. NB – аналогічно, починаючи з адреси 8408. Програма додавання закінчується командою десяткової корекції результату (див. табл..32).
Цю програму дослідити в кроковому і неперервному режимах, пам’ятаючи, що в неперервному режимі ННП працює без МОНІТОРа. Щоб після виконання програми в цьому режимі відбулося переривання і звернення до МОНІТОРа, який вмикає індикатор, замість команди HLT (код 76) треба використати команду RST (код Е7). Інакше під час зупинки за командою HLT МОНІТОР не буде викликаний і відповідна закінченню виконання програми інформація на індикацію не буде виведена.
Щоб виконати програму в неперервному режимі, необхідно встановити перемикач режиму в стан “ПРОГОН” задати початкову адресу програми – ADDR NNNN запустити програму на виконання клавішею RUN.
Адреса
16-й
M
Мнемокод
Пояснення
Адреса
Число
8200
11
LXI D,8400
DE8400
NA
8400
01
8201
00
8401
61
8202
84
8402
12
8203
21
LXI H,8408
HL8408
8403
44
8204
08
8404
16
8205
84
8405
00
8206
0E
MVI C,08
C08
8406
00
8207
08
8407
00
8208
AF
XRA A
AAA (Cбіт=0)
NB
8408
31
8209
1A
M1
LDAX D
A(DE)
8409
40
820A
8E
ADC M
AA+(HL)+ Cбіт
840A
99
820B
27
DAA
Десяткова корекція
840B
96
820C
12
STAX D
(DE)A
840C
00
820D
13
INX D
DEDE+1
840D
00
820E
23
INX H
HLHL+1
840E
00
820F
15
DCR C
CC-1
840F
00
8210
C2
INZ M1
Якщо Zбіт=0, то на M1
8211
09
8212
82
8213
E7
RST
Зупинка
Результати:
8400
32
8404
16
8401
01
8405
00
8402
12
8406
00
8403
40
8407
00
00000000 00000000 00000000 00010110 01000100 00010011 01100001 00000010
+ 00000000 +00000000 +00000000 +00000000 +10010110 +10011001 +01000001 +00110000
00000000 00000000 00000000 00010110 11011010 10101100 10100010 00110010
+01100110 +01100110 +0110
1 01000000 1 00010010 1 00000010
6. Дослідити програму (табл.33) множення двох однобайтових чисел МА і МВ (варіанти значень чисел наведені в табл.34). Початкова адреса програми 8200 множник МА завантажити в реєстр D, а МВ – в Е. Результат множення записується в реєстрову пару ВС, тобто результат двобайтовий. У програмі використовується стек, але налагоджувати його не потрібно, бо він налагоджується МОНІТОРОМ на адресу 83ЕО. Програму дослідити в кроковому та автоматичному режимах. Навести у звіті перевірку отриманого добутку множенням співмножників у десятковій системі числення та множенням цих співмножників згідно з алгоритмом, який реалізований у програмі (табл.33).
Адреса
16-й
M
Мнемокод
Пояснення
8200
01
LXI B, 0000
BС0000
8201
00
8202
00
8203
3E
MVI A, 01
A01
8204
01
8205
A7
ANA A
AAA
8206
F5
M1
PUSH PSN
(SP-2) F, (SP-1)A, SPSP-2
8207
A3
ANA E
AAE
8208
78
MOV A,B
A B
8209
CA
JZ M2
If Z=1 go to M2
820A
0D
820B
82
820C
82
ADD D
AA+D
820D
1F
M2
RAR
Зсув А праворуч
820E
47
MOV B, A
BA
820F
79
MOV A, C
AC
8210
1F
RAR
Зсув А праворуч
8211
4F
MOV C, A
C A
8212
F1
POP PSW
F(SP),A(SP+1), SPSP+1
8213
17
RAL
Зсув А ліворуч
8214
D2
JNC M1
Якщо C=0 то на M1
8215
06
8216
82
8217
E7
RST
Зупинка
Перевірка:
1010 REG C (C=90), REG B (B=00)
1001
1010
1010
1011010 = 90H