Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Залік_індивідуальне.doc
Скачиваний:
0
Добавлен:
13.09.2019
Размер:
242.18 Кб
Скачать

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

Національний технічний університет України

« Київський політехнічний інститут»

Факультет інформатики та обчислювальної техніки

Кафедра технічної кібернетики

Звіт

про виконання індивідуального

практичного завдання

по курсу

«Мікропроцесорні системи»

Варіант 16

Виконали

Студенти ІII курсу

групи ІК-92

Жуковський В.В.

Перевірив доцент

кафедри технічної кібернетики

___________________ Ігнатенко В. М.

Київ 2012

Зміст роботи

  1. Варіант завдання

  2. Змістовний опис програми

  3. Блок-схема алгоритму програми

  4. Текст програми та підпрограми з коментарями

  5. Висновок

  1. Завдання

Створити програму по виводу 3-х текстових повідомлень наступного виду, що записані у відповідних областях памяті:

АБС9, РПГb SOРS, ПАdF ГFH7, EOП5 за допомогою кожного з 3-х тумблерів.

  1. Змістовний опис програми

Створена нами програма повинна виводити на екран повідомлення, які записані в певних областях пам’яті, причому повідомлення повинні виводить в відповідності до увімкнених тумблерів, тобто: якщо увімкнений 1-ий тумблер виводиться перше повідомлення і так далі, при інших комбінаціях тумблерів, таких як 1,2 або 2,3 або 1,3 або всі вимкнені чи всі вимкнені програма не буде ніяк реагувати.

  1. Блок-схема алгоритму програми

  1. Текст програми та підпрограми з коментарями Формуємо код програми

Адреса

Код

Асемблер

Коментарі

8000

3E

MVI A, 81

Програмування інтерфейсу

8001

81

8002

D3

OUT FB

Робота на ввід/вивід з регістром РКС

8003

FB

8004

DB

IN FA

Читання стану тумблерів

8005

FA

8006

06

MVI B, 0E

Заносимо до регістру В маску, для відокремлення бітів які нас цікавлять

8007

0E

8008

A0

ANA B

Накладаємо маску на отриманий байт

8009

FE

CPI 08

Порівнюємо відфільтрований результат зі станом тумблера який нас цікавить

800A

08

800B

C2

JNZ 8014

Якщо результат порівняння не 0, то ввімкнений тумблер,

який нас не цікавить, переходимо до наступної перевірки, в

іншому випадку виконуємо необхідні дії.

800C

14

800D

80

800E

11

LXI D,8070

Заносимо до регістрової пари Д,Е адресу, де знаходиться

відповідне повідомлення (в даному випадку перше)

800F

70

8010

80

8011

CD

CALL 8040

Викликаємо підпрограму для виводу повідомлення, як результат повідомлення виводиться на табло.

8012

40

8013

80

8014

DB

IN FA

8015

FA

8016

06

MVI B,0E

Заносимо до регістру В маску, для відокремлення бітів які нас цікавлять

8017

0E

8018

A0

ANA B

Накладаємо маску на отриманий байт

8019

FE

CPI 04

Порівнюємо відфільтрований результат зі станом тумблера який нас цікавить

801A

04

801B

C2

JNZ 8024

Якщо результат порівняння не 0, то ввімкнений тумблер,

який нас не цікавить, переходимо до наступної перевірки, в

іншому випадку виконуємо необхідні дії.

801C

24

801D

80

801E

11

LXI D,8078

Заносимо до регістрової пари Д,Е адресу, де знаходиться

відповідне повідомлення (в даному випадку друге)

801F

78

8020

80

8021

CD

CALL 8040

Викликаємо підпрограму для виводу повідомлення, як

результат повідомлення виводиться на табло.

8022

40

8023

80

8024

DB

IN FA

8025

FA

8026

06

MVI B,0E

Заносимо до регістру В маску, для відокремлення бітів які нас цікавлять

8027

0E

8028

A0

ANA B

Накладаємо маску на отриманий байт

8029

FE

CPI 02

Порівнюємо відфільтрований результат зі станом тумблера який нас цікавить

802A

02

802B

C2

JNZ 8004

Якщо результат порівняння не 0, то ввімкнений тумблер, який нас не цікавить, тому повертаємося на повторне зчитування тумблерів, в іншому випадку виконуємо дії.

802C

04

802D

80

802E

11

LXI D,8080

Заносимо до регістрової пари Д,Е адресу, де знаходиться відповідне повідомлення (в даному випадку третє)

802F

80

8030

80

8031

CD

CALL 8040

Викликаємо підпрограму для виводу повідомлення, як результат повідомлення виводиться на табло.

8032

40

8033

80

8034

C3

JMP 8004

Виконуємо безумовний перехід на повторне зчитування стану тумблерів, та подальшу перевірку.

8035

04

8036

80

Код використаної підпрограми (ВИВІД ПОВІДОМЛЕННЯ)

Адреса

Код

Асемблер

Коментарі

8040

3E

MVI A, F0

8041

81

8042

D3

OUT FB

8043

FB

8044

26

MVI H,08

Лічильник циклу: 08 – вісім сегментів на табло

8045

08

8046

01

LXI B,83F8

Заносимо до регістрової пари В,С адресу по якій ми будемо виводити повідомлення

8047

F8

8048

83

8049

1A

LDAX D

Завантаження в Акк. значення, яке знах. по адресі, яка записана в регістровій парі Д,Е

804A

02

STAX B

Запам’ятовуємо вміст Акк. По адресі яка записана в В,С

804B

13

INX D

Збільшення вмісту регістрової пари Д,Е на одиницю

804C

03

INX B

Збільшення вмісту регістрової пари B,C на одиницю

804D

25

DCR H

Зменшення регістру Н на одиницю

804E

3E

MVI A,00

Заносимо до Акк. 0

804F

00

8050

BC

CMP H

Порівнюємо Акк. З регістром Н

8051

C2

JNZ 8049

Якщо нуль то завершуємо вивід повідомлення

8052

49

8053

80

8054

3E

MVI A, 81

8055

81

8056

D3

OUT FB

8057

FB

8058

C9

RET

Повернення до виконання основної програми

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