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

ПМСУ1(3)

.doc
Скачиваний:
19
Добавлен:
13.05.2015
Размер:
287.74 Кб
Скачать

Российская Федерация

Тюменская область

ХАНТЫ-МАНСИЙСКИЙ АВТОНОМНЫЙ ОКРУГ –ЮГРА

Департамент образования и науки

Сургутский государственный университет

Ханты-Мансийского автономного округа

Факультет автоматики и телекоммуникаций

Кафедра автоматики и компьютерных систем

Отчет

По лабораторной работе № 6

По дисциплине «Организация ЭВМ»

Выполнил:

Проверил:

Запевалов А.В.

Сургут

Цель работы:

Создать программное обеспечение, отображающее основную надпись и реагирующее на запросы от трёх источников прерываний. Обработку запросов на прерывания осуществлять с помощью программного полинга. Подпрограммы обслуживания запросов осуществляют отображение на дисплее в течение 3-5 с. Определённой надписи.

Вариант № 16.

Основная надпись: ЦАРЬ

№ IRQ 3 надпись: БАРОН

№ IRQ 5 надпись: ГЕРЦОГ

№ IRQ 1 надпись: ГЕРБ

Ход работы

Блок схема алгоритма

Вывод слова ЦАРЬ

Сканирование порта 05

Вывод слова БАРОН

+

-

Вывод слова ГЕРЦОГ

+

-

Вывод слова ГЕРБ

+

-

Адрес

Метка

Машинный код

Ассемблерный код

Комментарии к выполняемой операции

0810

BEGIN

CD

CALL 0840

Вызов подпрограммы вывода слова ЦАРЬ

0811

40

0812

08

0813

SCAN

DB

IN 05

Сканирование порта 05

0814

05

0815

E6

ANI 08

АккумуляторАккумулятор & 00001000

0816

08

0817

CA

JZ A

Если 3ий разряд в нуле, то не выводим слово БАРОН

0818

20

0819

08

081A

CD

CALL 0870

Вызов подпрограммы вывода слова БАРОН

081B

70

081C

08

081D

C3

JMP SCAN

Возврат к сканированию порта 05

081E

13

081F

08

0820

A

DB

IN 05

Сканирование порта 05

0821

05

0822

E6

ANI 20

АккумуляторАккумулятор & 00100000

0823

20

0824

CA

JZ B

Если 5ый разряд в нуле, то не выводим слово ГЕРЦОГ

0825

2D

0826

08

0827

CD

CALL 08A0

Вызов подпрограммы вывода слова ГЕРЦОГ

0828

A0

0829

08

082A

C3

JMP SCAN

Возврат к сканированию порта 05

082B

13

082C

08

082D

B

DB

IN 05

Сканирование порта 05

082E

05

082F

E6

ANI 02

АккумуляторАккумулятор & 00000010

0830

02

0831

CA

JZ BEGIN

Если 1ый разряд в нуле, то не выводим слово ГЕРБ

0832

10

0833

08

0834

CD

CALL 08D0

Вызов подпрограммы вывода слова ГЕРБ

0835

D0

0836

08

0837

C3

JMP BEGIN

Возврат к началу программы

0838

10

0839

08

083A

0840

ЦАРЬ

3E

MVI A, BE

Запись в аккумулятор кода символа Ц

0841

BE

0842

32

STA 0BFF

Сохранение содержимого аккумулятора по адресу 0BFF

0843

FF

0844

0B

0845

3E

MVI A, 77

Запись в аккумулятор кода символа А

0846

77

0847

32

STA 0BFE

Сохранение содержимого аккумулятора по адресу 0BFE

0848

FE

0849

0B

084A

3E

MVI A, 73

Запись в аккумулятор кода символа Р

084B

73

084C

32

STA 0BFD

Сохранение содержимого аккумулятора по адресу 0BFD

084D

FD

084E

0B

084F

3E

MVI A, 7С

Запись в аккумулятор кода символа Ь

0850

0851

32

STA 0BFC

Сохранение содержимого аккумулятора по адресу 0BFC

0852

FC

0853

0B

0854

3E

MVI A, 00

Запись в аккумулятор кода символа пробел

0855

00

0856

32

STA 0BFB

Сохранение содержимого аккумулятора по адресу 0BFB

0857

FB

0858

0B

0859

3E

MVI A, 00

Запись в аккумулятор кода символа пробел

085A

00

085B

32

STA 0BFA

Сохранение содержимого аккумулятора по адресу 0BFA

085C

FA

085D

0B

085E

CD

CALL 01C8

Однократное сканирование дисплея

085F

C8

0860

01

0861

C9

RET

Извлечение из стека адреса возврата в программу

0870

БАРОН

3E

MVI A, 7D

Запись в аккумулятор кода символа Б

0871

7D

0872

32

STA 0BFF

Сохранение содержимого аккумулятора по адресу 0BFF

0873

FF

0874

0B

0875

3E

MVI A, 77

Запись в аккумулятор кода символа А

0876

77

0877

32

STA 0BFE

Сохранение содержимого аккумулятора по адресу 0BFE

0878

FE

0879

0B

087A

3E

MVI A, 73

Запись в аккумулятор кода символа Р

087B

73

087C

32

STA 0BFD

Сохранение содержимого аккумулятора по адресу 0BFD

087D

FD

087E

0B

087F

3E

MVI A, 3F

Запись в аккумулятор кода символа О

0880

3F

0881

32

STA 0BFC

Сохранение содержимого аккумулятора по адресу 0BFC

0882

FC

0883

0B

0884

3E

MVI A, 76

Запись в аккумулятор кода символа Н

0885

76

0886

32

STA 0BFB

Сохранение содержимого аккумулятора по адресу 0BFB

0887

FB

0888

0B

0889

3E

MVI A, 00

Запись в аккумулятор кода символа пробел

088A

00

088B

32

STA 0BFA

Сохранение содержимого аккумулятора по адресу 0BFA

088C

FA

088D

0B

088E

01

LXI B, 0500

Инициализация псевдосчетчика ВС

088F

00

0890

05

0891

Б1

CD

CALL 01C8

Однократное сканирование дисплея

0892

C8

0893

01

0894

CD

CALL 0429

Задержка в 1 мс

0895

29

0896

04

0897

0B

DCX B

Декремент счетчика ВС

0898

78

MOV A,B

Заносим содержимое B регистра в аккумулятор

0899

D6

SUI 00

Вычитаем из A регистра 0 для проверки флагов

089A

00

089B

С2

JNZ Б1

Переход если В не ноль

089C

91

089D

08

089E

C9

RET

Извлечение из стека адреса возврата в программу

08A0

ГЕРЦОГ

3E

MVI A, 31

Запись в аккумулятор кода символа Г

08A1

31

08A2

32

STA 0BFF

Сохранение содержимого аккумулятора по адресу 0BFF

08A3

FF

08A4

0B

08A5

3E

MVI A, 79

Запись в аккумулятор кода символа Е

08A6

79

08A7

32

STA 0BFE

Сохранение содержимого аккумулятора по адресу 0BFE

08A8

FE

08A9

0B

08AA

3E

MVI A, 73

Запись в аккумулятор кода символа Р

08AB

73

08AC

32

STA 0BFD

Сохранение содержимого аккумулятора по адресу 0BFD

08AD

FD

08AE

0B

08AF

3E

MVI A, BE

Запись в аккумулятор кода символа Ц

08B0

BE

08B1

32

STA 0BFC

Сохранение содержимого аккумулятора по адресу 0BFC

08B2

FC

08B3

0B

08B4

3E

MVI A, 3F

Запись в аккумулятор кода символа О

08B5

3F

08B6

32

STA 0BFB

Сохранение содержимого аккумулятора по адресу 0BFB

08B7

FB

08B8

0B

08B9

3E

MVI A, 31

Запись в аккумулятор кода символа Г

08BA

31

08BB

32

STA 0BFA

Сохранение содержимого аккумулятора по адресу 0BFA

08BC

FA

08BD

0B

08BE

01

LXI B, 0500

Инициализация псевдосчетчика ВС

08BF

00

08C0

05

08C1

Г1

CD

CALL 01C8

Однократное сканирование дисплея

08C2

C8

08C3

01

08C4

CD

CALL 0429

Задержка в 1 мс

08C5

29

08C6

04

08C7

0B

DCX B

Декремент счетчика ВС

08C8

78

MOV A,B

Заносим содержимое B регистра в аккумулятор

08C9

D6

SUI 00

Вычитаем из A регистра 0 для проверки флагов

08CA

00

08CB

С2

JNZ Г1

Переход если В не ноль

08CC

С1

08СD

08

08CE

C9

RET

Извлечение из стека адреса возврата в программу

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]