Міністерство освіти України
Національний університет „Львівська політехніка”
кафедра ЕАП
Лабораторна робота №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 RST
Адреса
16-й
Мнемокод
Пояснення
8200
0E
MVI C, 4D
C4D
(C=4D, REG C - перевірка).
8201
4D
8202
5E
MOV E, C
EC (E=4D, REG E - перевірка).
8203
56
MOV D, E
DE (D=4D, REG D - перевірка).
8204
2A
LHLD 004A
L(004A) ,H(004B) (за адресою 004A чи-сло B2, а за 004B – C2, відповідно L=B2, a H=C2).
8205
4A
8206
00
8207
22
SHLD 8402
(8402) L, (8403) H
(за адресою 8402 запишеться B2, а за
8403 - C2).
8208
02
8209
84
820A
11
LXI D,8502
D85, E02
(D=85, E=02).
820B
02
820C
85
820D
EB
XCHG
HD, LE.
820E
46
MOV B, M
B(HL) (B=(8502))
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
83Е0SP
8201
E0
8202
83
8203
21
LXI HL 2CAB
HL=2СAB
H=2C
L=AB
8204
AB
8205
2C
8206
E5
PUSH H
(SP-1)H, (SP-2)L
(83DF)=2C
(83DE)=AB
8207
39
DAD SP
HLHL+SP
H=B0 L=89
8208
E7
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
06
8201
00
8401
12
8202
84
8402
16
8203
21
LXI H,8408
HL8408
8403
50
8204
08
8404
93
8205
84
8405
71
8206
0E
MVI C,08
C08
8406
09
8207
08
8407
00
8208
AF
XRA A
AAA (Cбіт=0)
NB
8408
46
8209
1A
M1
LDAX D
A(DE)
8409
21
820A
8E
ADC M
AA+(HL)+ Cбіт
840A
97
820B
27
DAA
Десяткова корекція
840B
35
820C
12
STAX D
(DE)A
840C
41
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
52
8404
34
8401
33
8405
71
8402
13
8406
09
8403
85
8407
00
Десяткова корекція:
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
Якщо Z=1 то на 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
Зупинка
Дано: МА=02 МВ=08 Для перевірки: МА=15 МВ=08
Перевірка: 1111
1000
1000 REG C (C=10), REG B (B=00) 0000
10 0000
0000 0000
1000 1111 Добуток=120 D = 1111000 B = 78 H
10000 = 10 H
1111000