
- •Лабораторна робота № 1
- •Короткі відомості з теорії
- •Завдання для домашньої підготовки
- •Завдання до лабораторної роботи
- •Порядок виконання завдання
- •Порядок виконання завдання
- •Порядок виконання завдання
- •Порядок виконання завдання
- •Порядок виконання завдання
- •Завдання для самоперевірки
- •Література
- •Лабораторна робота № 2
- •Короткі відомості з теорії
- •Завдання для домашньої підготовки
- •Завдання до лабораторної роботи
- •Порядок виконання завдання
- •Порядок виконання завдання
- •Порядок виконання завдання
- •Порядок виконання завдання
- •Порядок виконання завдання
- •Робота на навчальній еом
- •Завдання для самоперевірки
- •Література
- •Короткі відомості з теорії
- •Програма 8.6
- •Програма 8.7
- •Програма 8.8
- •Програма 8.9
- •Завдання до домашньої підготовки
- •Завдання до лабораторної роботи
- •Робота на навчальній еом
- •Завдання для самоперевірки
- •Література
- •Лабораторна робота 4 підпрограма і стек
- •Короткі відомості з теорії
- •Завдання для домашньої підготовки
- •Завдання до лабораторної роботи
- •Робота на навчальній еом
- •Завдання для самоперевірки
- •Завдання для домашньої підготовки
- •Завдання до лабораторної роботи
- •Робота на навчальній еом
- •Завдання для самоперевірки
- •Завдання для домашньої підготовки
- •Завдання до лабораторної роботи
- •Робота на навчальній еом
- •Завдання для самоперевірки
- •Завдання для домашньої підготовки
- •Завдання до лабораторної роботи
- •Робота на навчальній еом
- •Завдання для самоперевірки
- •Завдання для домашньої підготовки
- •Завдання до лабораторної роботи
- •Робота на навчальній еом
- •Завдання для самоперевірки
- •Завдання для домашньої підготовки
- •Робота на навчальній еом
- •Завдання для самоперевірки
- •Література
- •Робота на навчальній еом
- •Завдання для самоперевірки
- •Література
- •Завдання для домашньої підготовки
- •Робота на навчальній еом
- •Завдання для самоперевірки
- •Література
Робота на навчальній еом
Навчальна мікро-ЕОМ містить схему видачі звукових сигналів. Адреса зовнішнього пристрою для запису даних в схему видачі звукових сигналів – 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 необхідно перед початком виконання її здійснити початкову установку усіх вхідних параметрів.