Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПМСУ1(2).doc
Скачиваний:
12
Добавлен:
13.05.2015
Размер:
282.11 Кб
Скачать

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

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

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

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

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

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

ОТЧЕТ

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

по дисциплине «Вычислительные машины»

Выполнили: студенты

Принял: Запевалов А.В.

Сургут

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

Вариант №2.

№ вар-а

Осн.надп.

№ IRQ

надпись

№ IRQ

надпись

№ IRQ

надпись

2

СУГРОБ

4

БУРАН

1

ПУРГА

3

СНЕГ

Блок-схема:

Основная программа

Чтение из порта 05 в аккумулятор

Наложение маски на аккумулятор (00010000)

Сравнение аккумулятора с регистром

Да

Нет

Запись в регистр 10

Вызов пп1

Сравнение аккумулятора с регистром

Чтение из порта 05 в аккумулятор

Наложение маски на аккумулятор (00010010)

Запись в регистр 02

Да

Вызов ПП2

Нет

Сравнение аккумулятора с регистром

Чтение из порта 05 в аккумулятор

Наложение маски на аккумулятор (00011010)

Запись в регистр 08

Нет

Да

Вызов ПП3

Запись слова «СУГРОБ»

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

Подпрограмма №1

Запись слова «буран»

Инициализация счетчика

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

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

Нет

Да

Возврат в основную программу

П

Запись слова «ПУРГА»

Инициализация счетчика

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

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

Да

Возврат в основную программу

одпрограмма №2

Нет

П

Запись слова «СНЕГ»

Инициализация счетчика

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

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

Да

Возврат в основную программу

одпрограмма №3

Основная программа

Адрес

Метка

Машинный код

Код на языке Assembler

Комментарий

0810

M1

DB

IN

05

Запись в А-регистр содержимого PORT 05

0811

05

0812

E6

ANI

10

Наложение на А маски 0001 0000

0813

10

0814

06

MVI

B,10

Запись в B-регистр числа 10

0815

10

0816

B8

CMP

B

Сравнение содержимого B-регистра с содержимым A-регистра

0817

CC

CZ

0850

Вызов подпрограммы №1, если содержимое

0818

50

А-регистра равняется содержимому В-регистра

0819

08

081A

DB

IN

05

Запись в А-регистр содержимого PORT 05

081B

05

081C

E6

ANI

12

Наложение на А маски 0001 0010

081D

12

081E

06

MVI

B,02

Запись в B-регистр числа 02

081F

02

0820

B8

CMP

B

Сравнение содержимого B-регистра с содержимым A-регистра

0821

CC

CZ

0880

Вызов подпрограммы №2, если содержимое

0822

80

А-регистра равняется содержимому В-регистра

0823

08

0824

DB

IN

05

Запись в А-регистр содержимого PORT 05

0825

05

0826

E6

ANI

Наложение на А маски 0001 1010

0827

0828

06

MVI

B,08

Запись в B-регистр числа 08

0829

08

082A

B8

CMP

B

Сравнение содержимого B-регистра с содержимым A-регистра

082B

CC

CZ

08B0

Вызов подпрограммы №3, если содержимое

082C

B0

А-регистра равняется содержимому В-регистра

082D

08

082E

21

LXI

H,0BFA

Инициализация указателя

082F

FA

0830

0B

0831

36

MVI

M, 7D

Запись буквы “Б” в ячейку памяти

0832

7D

0833

23

INX

H

Инкремент указателя

0834

36

MVI

M, 3F

Запись буквы “О” в ячейку памяти

0835

3F

0836

23

INX

H

Инкремент указателя

0837

36

MVI

M, 73

Запись буквы “Р” в ячейку памяти

0838

73

0839

23

INX

H

083A

36

MVI

M, 31

Запись буквы “Г” в ячейку памяти

083B

31

083C

23

INX

H

083D

36

MVI

M, 6E

Запись буквы “У” в ячейку памяти

083E

6E

083F

23

INX

H

Инкремент указателя

0840

36

MVI

M, 39

Запись буквы “С” в ячейку памяти

0841

39

0842

CD

CALL

01С8

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

0843

С8

0844

01

0845

C3

JMP

M1

Безусловный переход на метку M1

0846

10

0847

08

Подпрограмма №1

Адрес

Метка

Машинный код

Код на языке Assembler

Комментарий

0850

21

LXI

H, 0BFA

Инициализация указателя

0851

FA

0852

0B

0853

36

MVI

M, 00

Запись “ ” символа в ячейку памяти

0854

00

0855

23

INX

H

Инкремент указателя

0856

36

MVI

M, 76

Запись буквы “Н” в ячейку памяти

0857

76

0858

23

INX

H

0859

36

MVI

M, 77

Запись буквы “А” в ячейку памяти

085A

77

085B

23

INX

H

Инкремент указателя

085C

36

MVI

M, 73

Запись буквы “Р” в ячейку памяти

085D

73

085E

23

INX

H

Инкремент указателя

085F

36

MVI

M, 6E

Запись буквы “У” в ячейку памяти

0860

6E

0861

23

INX

H

Инкремент указателя

0862

36

MVI

M, 7D

Запись буквы “Б” в ячейку памяти

0863

7D

0864

0E

MVI

C, 40

Инициализация счетчика

0865

FF

0866

M2

CD

CALL

0429

Вызов подпрограмм задержки на 1мс

0867

29

0868

04

0869

CD

CALL

01C8

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

086A

C8

086B

01

086C

0D

DCR

C

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

086D

C2

JNZ

M2

Если счетчик не равен нулю,

086E

66

то переход на метку M2

086F

08

0870

C9

RET

Возврат

Подпрограмма №2

Адрес

Метка

Машинный код

Код на языке Assembler

Комментарий

0880

21

LXI

H, 0BFA

Инициализация указателя

0881

FA

0882

0B

0883

36

MVI

M, 00

Запись “ ” символа в ячейку памяти

0884

00

0885

23

INX

H

Инкремент указателя

0886

36

MVI

M, 77

Запись “ А ” символа в ячейку памяти

0887

77

0888

23

INX

H

Инкремент указателя

0889

36

MVI

M, 31

Запись буквы “ Г ” в ячейку памяти

088A

31

088B

23

INX

H

Инкремент указателя

088C

36

MVI

M, 73

Запись буквы “ Р ” в ячейку памяти

088D

73

088E

23

INX

H

Инкремент указателя

088F

36

MVI

M, 6E

Запись буквы “ У ” в ячейку памяти

0890

6E

0891

23

INX

H

Инкремент указателя

0892

36

MVI

M, 37

Запись буквы “П” в ячейку памяти

0893

37

0894

0E

MVI

C, 40

Инициализация счетчика

0895

FF

0896

M3

CD

CALL

0429

Вызов подпрограмм задержки на 1мс

0897

29

0898

04

0899

CD

CALL

01C8

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

089A

C8

089B

01

089C

0D

DCR

C

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

089D

C2

JNZ

M3

Если счетчик не равен нулю,

089E

96

то переход на метку M2

089F

08

08A0

C9

RET

Возврат

Подпрограмма №3

Адрес

Метка

Машинный код

Код на языке Assembler

Комментарий

08B0

21

LXI

H, 0BFA

Инициализация указателя

08B1

FA

08B2

0B

08B3

36

MVI

M, 00

Запись “ ” символа в ячейку памяти

08B4

00

08B5

23

INX

H

Инкремент указателя

08B6

36

MVI

M, 00

Запись “ ” символа в ячейку памяти

08B7

00

08B8

23

INX

H

Инкремент указателя

08B9

36

MVI

M, 31

Запись буквы “ Г ” в ячейку памяти

08BA

31

08BB

23

INX

H

Инкремент указателя

08BC

36

MVI

M, 79

Запись буквы “ Е ” в ячейку памяти

08BD

79

08BE

23

INX

H

Инкремент указателя

08BF

36

MVI

M, 76

Запись буквы “ Н ” в ячейку памяти

08C0

76

08C1

23

INX

H

Инкремент указателя

08C2

36

MVI

M, 39

Запись буквы “С” в ячейку памяти

08C3

39

08C4

0E

MVI

C, 40

Инициализация счетчика

08C5

FF

08C6

M4

CD

CALL

0429

Вызов подпрограмм задержки на 1мс

08C7

29

08C8

04

08C9

CD

CALL

01C8

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

08CA

C8

08CB

01

08CC

0D

DCR

C

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

08CD

C2

JNZ

M4

Если счетчик не равен нулю,

08CE

C6

то переход на метку M2

08CF

08

08D0

C9

RET

Возврат

Вывод: В данной лабораторной работе мы научились создавать программное обеспечение, отображающее основную надпись и реагирующее на запросы от трех источников прерываний. Обработку запроса на прерывание осуществляли с помощью программного полинга.

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