Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний Університет «Львівська політехніка»
Розрахункова робота №1
З дисципліни: «Мікропроцесорні засоби та системи»
Варіант №7
Завдання №1
Підняти число 10.5 до квадрату за допомогою засобів Assembler
Будемо вважати що число записане в комірці адреса якої 008F
Адреса
Машинний код
Мнемокод
Пояснення
шістнадцятковий
двійковий
8200
21
00100001
LXI H,008F
HL←008F
8201
8F
10001111
8202
820
00
00000000
8203
3A
00111010
LDA, 0000
A←0000
8204
00
00000000
8205
00
00000000
8206
86
10000110
ADD M
A←A+HL
8207
11
00010001
LXI D, 0000
DE←0000
8208
00
00000000
8209
00
00000000
820A
EB
11101011
XCHG
(H)↔(D) (L)↔(E)
820B
0E
00001110
MVI C,08
C←08
820C
08
00001000
820D
29
00101001
DAD H
HL← HL+HL
820E
07
00000111
RLC
Зсув ліворуч вмісту акумулятора
820F
D2
11010010
JNC 8213
Аналіз розряду множника (Сбіт=0) то на 8213
8210
13
00010011
8211
82
10000010
8212
19
00011001
DAD D
HL← HL+DE
8213
0D
00001101
DCR C
C←С-1
8214
C2
11000010
JNZ 820D
Перехід на 820D
8215
0D
00001101
8216
82
10000010
8217
76
01110110
HLT
Кінець
Задання №2
Реалізувати часову затримку у розмірі 10∙
10
−3
секунд
Частота процесора f=2 МГц, час одного такту
1
2∙
10
6
=0,5∙
10
−6
Кількість тактів для забезпечення часу затримки
10∙
10
−3
0,5∙
10
−6
=20000
Отож, для забезпечення часової затримки необхідно, 20000 тактів.
Отже: команда MVI D, FF займає 7 тактів
команда MVI C, A6 займає 7 тактів
Цими командами в рестри D і С відповідно завантажуємо значення FF та A6, це кількість циклів які має виконати програма.
В першому циклі:
Команда DCR C займає 5 тактів
Команда LDA 8500 займає 13 тактів
Команда JNZ 8204 займає 10 тактів
В сумі весь цикл займає 5+10+13=28 тактів, і виконується A6h→166d виходить що даний цикл займає 166*28=4648 тактів.
У другому циклі:
Команда DCR D займає 5 тактів
Команда LHLD 8500 займає 16 тактів
Команда SHLD 8500 займає 16 тактів
Команда LDA 8500 займає 13 тактів
Команда JNZ 820B займає 10 тактів
В сумі весь цикл займає 5+16+16+13+10=60 тактів, і виконується FFh→255d виходить що даний цикл займає 255*60=15300 тактів.
Решту тих тактів що залишилося займаємо командами:
Команда LDAX D займає 7 тактів (використовуємо двічі)
Команда STAX D займає 7 тактів
Команда NOP займає 5 тактів (використовуємо двічі)
Команда HLT займає 7 тактів
Підсумовуючи отримуємо: 7+7+4648+15300+7+7+7+5+5+7=20000, тим самим забезпечуємо витримку часу у 0,01 с.
Адреса
Машинний код
Мнемокод
Пояснення
шістнадцятковий
двійковий
8200
16
00010110
MVI D,FF
D←FF
7
8201
FF
11111111
8202
820
0E
00001110
MVI C, A6
C←0E
7
8203
A6
10100110
8204
0D
00001101
DCR C
C←C-1
5
8205
3A
00111010
LDA 8500
A←8500
13
8206
00
00000000
8207
85
10000101
8208
C2
11000010
JNZ 8204
Умова переходу
10
8209
04
00000100
890A
82
10000010
820B
15
00010101
DCR D
D←D-1
5
820C
2A
00101010
LHLD 8500
L←(B3)(B2)
H←((B3)(B2)+1)
16
820D
00
00000000
820E
85
10000101
820F
8211
22
00100010
SHLD 8500
(B3)(B2) ←L
((B3)(B2)+1) ←H
16
8210
00
00000000
8211
85
10000101
8212
3A
00111010
LDA 8500
A←8500
13
8213
00
00000000
8214
85
10000101
8215
C2
11000010
JNZ 820B
Умова переходу
10
8216
0B
00001011
8217
82
10000010
8218
1A
00011010
LDAX D
A←DE
7
8219
12
00010010
STAX D
DE←A
7
821A
1A
00011010
LDAX D
A←DE
7
821B
00
00000000
NOP
Порожня команда
5
821C
00
00000000
NOP
Порожня команда
5
821D
76
01110110
HLT
Зупинка
7
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!