Міністерство освіти України
національний університет Львівська політехніка’
Кафедра електроприводу
Лабораторна робота №4
на тему:
« Дослідження виконання окремих команд
і простих програм мікропроцесора КР580ИК80 »
з дисципліни « Мікропроцесорні засоби та ситеми »
Львів 2001
Мета роботи: ознайомитися з командами МП КР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
06
MVI B, 3A
B3AH
(B=3A, REG B - перевірка).
8201
3A
8202
48
MOV C, B
СB (C=3A, REG C - перевірка).
8203
79
MOV A, C
AC (A=3A, REG A - перевірка).
8204
2A
LHLD 0150
L(0150) ,H(0151) (за адресою 0150 чи-сло B2, а за 0151 – C2, відповідно L=B2, a H=C2).
8205
50
8206
01
8207
22
SHLD 8403
(8403) L, (8404) H
(за адресою 8403 запишеться B2, а за
8404 - C2).
8208
03
8209
84
820A
11
LXI D,8503
D85, E03
(D=85, E=03).
820B
03
820C
85
820D
EB
XCHG
HD, LE.
820E
46
MOV B, M
B(HL) (B=(8503))
820F
76
HLT
STOP
2. Перевірити виконання команд керування стеком. Налагодити стек, для чого в реєстр-покажчик стека командою LXI SP B2 B3 занести адресу вершини стека 83ЕОН. Попередньо з клавіатури, користуючись МОНІТОРОМ, занести в реєстрові пари ВС і DЕ будь-які двобаштові операнди. Після цього записати програму, яка складається з команд запису в стек вмісту реєстрових пар ВС і DЕ і читання зі стека, виконати її, контролюючи проміжні результати:LXI SP B2 B3 PUSH B PUSH D (контроль вмісту SР і стека) РОР Н РОР В (контроль вмісту НL, ВС і SР).
Адреса
16-й
Мнемокод
Пояснення
8200
31
LXI SP
SP=83E0
8201
E0
833E0
8202
83
8203
C5
PUSH B
(SP-1)B, (SP-2)C (83DF)=11, (83DE)=22
8204
D5
PUSH D
(SP-3)D, (SP-4)E (83DD)=33, (83DC)=44
8205
E1
POP H
L(SP-4), H(SP-3) L=44, H=33
8206
D1
POP D
E(SP-2), D(SP-1) E=22, D=11
8207
76
STOP
3. Скласти і дослідити таку програму: налагодити стек 83ЕОН, завантажити в НL двобайтовий операнд, після цього переслати його в стек, додати вміст SP і HL, проконтролювати результати в HL і стека.
Адреса
16-й
Мнемокод
Пояснення
8200
31
LXI SP
SP=83E0
8201
E0
833E0
8202
83
8203
21
LXI HL
HL=01A0
8204
A0
01A0
8205
01
8206
E5
PUSH H
(SP-1)H, (SP-2)L
8207
39
DAD SP
HLHL+SP
8208
76
STOP
4. Дослідити програму (табл..31) додавання без перенесення і віднімання без позичання однобайтових операндів (ADR 4), (ADR5), (ADR 6), тобто (ADR4) + (ADR5) – (ADR6), а результат записати за адресою ADR7. Перед виконанням програми з операнди записати в пам’ять з клавіатури. Проконтролювати окремо: результат додавання і вмісту реєстру ознак, віднімання і вмісту реєстру ознак. Програму виконати в кроковому режимі (“ОТЛАДКА”) і автоматичному (“ПРОГОН”). Під час виконання програми в автоматичному режимі замість команди зупинки HLT – код 76Н користуватися командою RST – код Е7Н.
Адреса
16-й
Мнемокод
Пояснення
8200
3A
LDA 000B
A(000B),A=83, F=56
8201
0B
8202
00
8203
21
LXIH 0130
HL0130, (0130)=CD
8204
30
8205
01
8206
86
ADD M
AA+(HL), A=50, F=17
8207
21
LXIH 0101
HL0101, (0101)=CB
8208
01
8209
01
820A
96
SUB M
AA-(HL), A=85, F=83
820B
92
STA 8415
(8415) A , (8415)=85
820C
15
820D
82
820E
76
HLT
STOP
S
Z
0
C1
0
P
1
C
F
=
0
1
0
1
0
1
1
0
10000011
+11001101
101010000 C=1, P=1, Z=0, S=0, C1=1. F=17H
S
Z
0
C1
0
P
1
C
F
=
0
0
0
1
0
1
1
1
0 1 0 1 0 0 0 0
-1 1 0 0 1 0 1 1
-1 0 0 0 0 1 0 1 C=1, P=0, Z=0, S=1, C1=0. F=17H
S
Z
0
C1
0
P
1
C
F
=
1
0
0
0
0
0
1
1
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
96
8201
00
8401
13
8202
84
8402
27
8203
21
LXI H,8408
HL8408
8403
51
8204
08
8404
78
8205
84
8405
19
8206
0E
MVI C,08
C08
8406
36
8207
08
8407
00
8208
AF
XRA A
AAA (Cбіт=0)
NB
8408
91
8209
1A
M1
LDAX D
A(DE)
8409
12
820A
8E
ADC M
AA+(HL)+ Cбіт
840A
55
820B
27
DAA
Десяткова корекція
840B
41
820C
12
STAX D
(DE)A
840C
43
820D
13
INX D
DEDE+1
840D
89
820E
23
INX H
HLHL+1
840E
91
820F
15
DCR C
CC-1
840F
00
8210
C2
INZ M1
If Zбіт=0, go to M1
8211
09
8212
82
8213
76
HLT
STOP
Результати:
8400
87 (96+91=1|87)
8404
21 (78+43+0=1|21)
8401
26 (13+12+1=0|26)
8405
09 (19+89+1=1|09)
8402
82 (27+55+0=0|82)
8406
28 (36+91+1=1|28)
8403
92 (51+41+0=0|92)
8407
01 (00+00+1=01)
6. Дослідити програму (табл.33) множення двох однобайтових чисел МА і МВ (варіанти значень чисел наведені в табл.34). Початкова адреса програми 8200 множник МА завантажити в реєстр D, а МВ – в Е. Результат множення записується в реєстрову пару ВС, тобто результат двобайтовий. У програмі використовується стек, але налагоджувати його не потрібно, бо він налагоджується МОНІТОРОМ на адресу 83ЕО. Програму дослідити в кроковому та автоматичному режимах. Навести у звіті перевірку отриманого добутку множенням співмножників у десятковій системі числення та множенням цих співмножників згідно з алгоритмом, який реалізований у програмі (табл.33).
Адреса
16-й
M
Мнемокод
Пояснення
8200
01
LXI B, 0000
Bc0000
8201
00
8202
00
8203
3E
MVI A, 01
A01
8204
01
8205
A7
ANA A
AAA
8206
F5
M1
PUSH PSW
(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
If C=0 go to M1
8215
06
8216
82
8217
76
HLT
STOP
Перевірка:
1010 REG C (C=90), REG B (B=00)
1001
1010
1010
1011010 = 90H