Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metoda.doc
Скачиваний:
1
Добавлен:
22.08.2019
Размер:
728.06 Кб
Скачать

Робота на навчальній еом

Навчальна мікро-ЕОМ містить схему видачі звукових сигналів. Адреса зовнішнього пристрою для запису даних в схему видачі звукових сигналів – 80.

Низка підпрограм записана в ПЗП мікро-ЕОМ. Зокрема, всі записані в ПЗП і наведені в опису лабораторної роботи програми мають адресу менше 0800.

Всі наведені в лабораторній роботі програми і порядок їх виконання можуть бути без будь-яких змін виконані на навчальній мікро-ЕОМ.

Зміст звіту

Звіт повинен містити: 1. Часові діаграми виконання команд CALL<A2> <A1> і RET. 2. Відповіді на запитання п. 4. 6 завдання для домашньої підготовки. 3. Повний перелік команд виклику і повертання з підпрограми для МП БІС КР580ИК80. 4. Розроблені в процесі домашньої підготовки програми 5- та 10-секундної затримки. 5. Перелік команд роботи зі стеком для МП БІС КР580ИК80. 6. Відповіді на запитання, поставлені в п. 7 завдання для домашньої підготовки.

Завдання для самоперевірки

1. Вкажіть кількість машинних тактів виконання команди CALL<A2> <A1>.

2. В якій послідовності записується і зчитується зі стека вміст акумулятора і регістра ознак МП БІС при виконанні команд PUSH PSW і POP PSW?

3. За допомогою яких команд можна задати або перепозначити область пам'яті, що відведена під стек?

4. Вкажіть порядок виконання мікро-ЕОМ команди RET.

5. Порівняйте процес виконання мікро-ЕОМ команд CALL і RST.

6. Як потрібно змінювати підпрограму 8.13, щоб часова затримка, що отримується в результаті її виконання, визначалась числами, записаними за адресами 00В0 і 0В01?

7. В якій послідовності зберігається і дістається вміст регістрів МП БІС в підпрограмах?

8. Якою мінімальною адресою буде записаний в покажчик стека SP МП БІС при виконанні підпрограми 8.15?

9. Як буде виконуватись підпрограма 8.15, якщо замість команди РОР В в ній буде записана команда NOP?

10. Який мінімальний час затримки може забезпечувати підпрограма 8.10, якщо тривалість машинного такту Т = 1 мкс?

11. Який максимальний і мінімальний час затримки може забезпечити підпрограма 8.13, якщо тривалість машинного такта Т = 1 мкс?

12. Як збільшити час затримки з використанням підпрограми 8.13?

Література

1. Балашов Е.П., Пузанков Д.В. Микропроцессоры и микропроцесорные системы. – М.: Радио и связь, 1981.

2. Соучек Б. Микропроцессоры и микро-ЭВМ: Пер. с англ. – М.: Советское радио, 1979.

Лабораторна робота 5

ВИКОНАННЯ АРИФМЕТИЧНИХ ОПЕРАЦІЙ

(додавання та віднімання)

Мета роботи:вивчення способів організації і дослідження програм виконання арифметичних операцій додавання та віднімання.

Короткі відомості з теорії

З двох способів визначення чисел з крапкою, що фіксована і плаває, перший отримав найбільше розповсюдження при програмуванні мікро-ЕОМ на МП БІС КР580ИК80. Це пов'язано з відсутністю спеціальних команд, що позволяють працювати МП БІС з числами з крапкою, що плаває. В свою чергу, двійкове восьмирозрядне число з фіксованою крапкою можна подати як двійкове число зі знаком, що має значення від –12810 до +12710. При цьому від'ємні числа подаються в додатковому коді, а старший, сьомий, розряд числа використовується як знаковий. Таке подання чисел не дозволяє виконувати арифметичні операції з використанням переносу при складанні і ЗАЕМ при відніманні.

Число з фіксованою крапкою можна подати також двійковими числами без знаку, що має значення від 0 до 25510.

Для МП БІС КР80ИК80 можна подати такі числа у вигляді двійково-десятичного числа – BINAARY - CODED - DECIMAL (BCD), при якому кожний байт розглядається як два півбайта – дві теради, кожна з яких кодує десятичну цифру. Таке подання дозволяє закодувати в 1 байт числа від 0 до 9910.

Підпрограма 8.16.

Адреса

Машинний код

Мітка

Мнемокод

Коментар

8000

21 000B

MAIN

LX1 H, 0B00

записати в регістри H, L адресу першого доданку

8003

06 05

MVI B, 0,5

завантажити в регістр В кількість доданків

8005

CD 0908

CALL ADDB

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

8008

CF

RST 1

перервати виконання програми

8009

AF

ADDB

XRA A

очистити акумулятор

800A

4F

MOV C, A

очистити лічильник переносів

800B

86

CNT

ADD M

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

800C

D2 1008

JNC TRM

якщо переносу немає, то йти на TRM

800F

0C

INR C

збільшити вміст регістру С на 1

8010

23

TRM

INX H

вказати на наступну адресу доданку

8011

05

DCR B

зменшити вміст лічильника доданків

8012

D2

0B08

JNC CNT

якщо не завжди доданки, то йти на CNT

8015

C9

RET

Програма складання масиву однобайтних чисел з отриманням двохбайтного результату – підпрограма MAIN (підпрограма 8.16). Доданки повинні бути розташовані в послідовних адресах пам'яті. Вхідними параметрами з підпрограми ADDB є адреса першого доданку, записаний в регістрах H, L, і число доданків, записаних в регістрі В. Вихідним параметром програми MAIN я сума, старший байт якої записаний в регістрі C, а молодший – в акумуляторі A. Алгоритм програми додавання полягає в тому, що після додавання кожного елементу масиву визначається переповнення акумулятора (розряд С-1), і якщо це має місце, то вміст регістра С збільшується на 1. Таким чином, за рахунок додавання одиниць переносу отримується старший байт суми (рис. 8.11, а).

Мікро-ЕОМ може проводити арифметичні операції з числами з подвійною або більшою довжиною машинного слова. Так як МП БІС на. 8-розрядний АЛП, то операції з такими числами повинні проводитись по байтам, починаючи з молодших байтів. Так, операція додавання чисел 17 F5 + 3411 буде проводитись в наступному вигляді:

Старший байт

Прапор С

Молодший байт

Числа

00101111

11110101

17F

+

+

+

00110100

00010001

3411

+1

1

01001100

00000110

4C06

Операція віднімання чисел 6F5C-13C5 буде здійснюватись в наступному вигляді:

Старший байт

Прапор С

Молодший байт

Числа

011101111

01011100

6F5С

-

-

-

00010011

11000101

13С5

-1

1

01011011

10010111

5В97

З наведених прикладів видно, що при додаванні (відніманні) молодших байтів числ необхідно застосовувати команду ADD (SUB), а для додавання (віднімання) інших – команду ADC (SBB), яка буде враховувати стан розряда регістра С ознак МП БІС.

Програма знаходження різниці чисел, що мають однакову довжину, - програма 8.17. Вхідні параметри: регістр С – довжина чисел (в байтах), регістри H, L – адреса молодшого байта від'ємника, регістри D, Е – адреса молодшого байта зменшуваного. Кожне з чисел записується в послідовних адресах пам'яті починаючи з молодших байтів. Результат заноситься в область пам'яті, що відводиться під від'ємника. В тому випадку. Якщо зменшуване менше від'ємника, буде подаватися звуковий сигнал.

Програма 8.17.

Адреса

Машинний код

Мітка

Мнемокод

Коментар

8000

AF

SBN

XRA A

очистити акумулятор і флаг C

8001

IA

CNT

LDAX D

записати в акумулятор зменшуване

8002

9E

SBB M

відняти з вмісту акумулятора від'ємник

8003

77

MOV M, A

записати різницю на місце від'ємника

8004

23

INX H

вказати на наступний байт від'ємника

8005

13

INX D

вказати на наступний байт зменшуваного

8006

0D

DCR C

зменшити вміст лічильника довжини числа

8007

C2 0109

JNZ CNT

якщо не останній (старший байт числа), то йти на CNT

800А

D0

RNC

якщо байт старший і результат без запозичення (С = 0), то повернення

800В

CD 1200

CALL BEEP

якщо було запозичення (С = 1), подати сигнал

800Е

CF

RST 1

перевати виконання програми

Виконання MOV M, A; INX D не впливає на розряд C. В програмі SBN підпрограма звукового сигналу (BEEP) починається з адреси 0012. Придослідженні програми SBN необхідно перед початком виконання її здійснити початкову установку усіх вхідних параметрів.

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