Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Розраха Білецький (Моцьо)

.docx
Скачиваний:
4
Добавлен:
19.05.2019
Размер:
42 Кб
Скачать
☆

Міністерство освіти і науки України

Національний Університет «Львівська політехніка»

Розрахункова робота №1

З дисципліни: «Мікропроцесорні засоби та системи»

Варіант №7

Виконав: Моцьо В.І

Група: ЕКТ - 31

Викладач: Білецький Ю.О.

Завдання №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

Реалізувати часову затримку у розмірі секунд

Частота процесора f=2 МГц, час одного такту

Кількість тактів для забезпечення часу затримки

Отож, для забезпечення часової затримки необхідно, 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

Львів-2018