- •Міністерство освіти і науки україни
- •2. Архітектура мікро-еом
- •Лабораторна робота №2
- •Теоретична частина двійкові числа
- •Шістнадцяткові числа
- •Лабораторна робота №3
- •Теоретична частина вісімкові числа
- •Лабораторна робота №4
- •Теоретична частина двйково-десяткові числа
- •Двійкова арифметика
- •Додатковий код
- •Лабораторна робота №5
- •Теоретична частина
- •Лабораторна робота №6
- •Теоретична частина угрупування біт
- •Буквено-цифровий код
- •Лабораторна робота №7
- •Теоретична частина
- •Лабораторна робота №8
- •Лабораторна робота №9
- •Теоретична частина
- •Лабораторна робота №10 Тема: шифратори, дешифратори й семисегментні індикатори.
- •Теоретична частина
- •Лабораторна робота №11
- •Теоретична частина
- •Лабораторна робота №12
- •Теоретична частина
- •Напівпровідникова пам'ять
- •Лабораторна робота №13
- •Теоретична частина
- •Лабораторна робота №14
- •Теоретична частина основи математичного забезпечення
- •Чого не "розуміє" мікро-еом
- •Мікро-еом як логічний пристрій
- •Мови програмування
- •Приклади програмування
- •Непряма адресація
- •Хід роботи завдання 1. Виконай вправи.
- •Завдання №2. Вивчити.
- •Завдання №3. Складіть програми мовою асемблера й машинною мовою мп кр580 і перевірте в мікролабораторії. Програми розміщайте у адреси 8000н.
- •Питання для самопідготовки
- •Лабораторна робота №15
- •Хід роботи.
- •Іі. Розробити програму.
- •Лабораторна робота №16
- •Теоретична частина
- •Хід роботи
- •Література
- •Питання для самоперевірки
- •Лабораторна робота №17.
- •Теоретична частина основи математичного забезпечення
- •Чого не "розуміє" мікро-еом
- •Мікро-еом як логічний пристрій
- •Процес розробки програмного забезпечення
- •Програма затримки
- •Іншим фактором, що повинен бути розглянутий при читанні із клавіатури, є виключення "дзвону".
- •Індикація
- •Хід роботи
- •Питання для самопідготовки:
- •Лабораторна робота №18
- •Теоретична частина програма монітора "мікролаб"
- •Програма рахунку
- •Організація програм
- •Переривання
- •Підпрограми й стек
- •Програма затримки
- •Хід роботи.
- •2. Розробити:
Організація програм
У різних випадках застосування перед МП ставляться різні завдання. Наприклад, вольтметр із убудованим МП повинен виміряти вхідну напругу й послати дані на дисплей. Процесор повинен перевести дані у вольти й автоматично підтримувати нуль шкали. Вимірник може мати клавіатуру /для уведення користувачем спеціальних запитів/. Для автоматичної установки діапазону процесор може бути пов'язаний з аттенюатором. Кожна із завдань, що коштують перед МП, є в основному незалежній і може бути представлена відносно простою програмою. Потім одна загальна /основна/ програма може об'єднати всі спеціалізовані програми, не вдаючись у подробиці кожного завдання.
Проведемо аналогію зі структурою великого підприємства. Директор не може виконати всю роботу, але він може приймати всі головні рішення-. Йому не треба турбуватися про те, якою мітлою підмітати двірникові, тому що це .можуть вирішити інші люди. Існує ряд заступників, які відповідають за певні напрямки роботи. У них у підпорядкуванні перебувають начальники рангом нижче, які.у свою чергу, управляють іншими службовцями. На підприємстві кожний має завдання для рішення, і чим нижче ви на службових сходах, тим більше ви вникаєте в деталі. Директор має час приймати важливі рішення, тому що він може змусити інших людей виконувати менш важливі. Вони, у свою чергу, змушують інших, які залучають ще людей, якщо це потрібно, потім кожний людина доповідає своєму начальникові, і нарешті, директор одержує відповідь.
Це дуже схоже на роботу процесорної системи. Тому що завдання можуть бути дуже різн і складними, то існує багато програм. Одна програма /часто називана виконавчої/ діє як директор. Програма-Виконавець має інші програми, що працюють на неї, і які у свою чергу, мають інші програми, що працюють на них.
Програми, що працюють на інші програми, називаються підпрограмами. Підпрограми можуть мати інші підпрограми, що працюють на них і т.д.
Приклад. На мал.3, наведена проста програма, що забезпечує запис у комірку пам'яті 8020 те нулів, то одиниць. У цій програмі використовуються підпрограми. Одна підпрограма використовується для запису в комірку пам'яті одиниць, інша - для запису нулів.
Основна програма містить тільки три команди: одну - для виклику підпрограми "нулі", іншу -для виклику підпрограми "одиниці" і третю т для переходу до початку.
Основна програма визначає всі функції програми, але їй не потрібно знати адреса комірки пам'яті. Потреби визначаються підпрограмами.
- Команда САLL змушує МП перейти на підпрограму. Мітки "0" і "1" визначають підпрограми й містяться по реальній адресі, коли мова Асемблер переводиться в машинний код. Перші дві команди кожної з підпрограм уже
Рис.3. Приклад використання підпрограми
розглянуто раніше. Остання команда RЕТ /повернення/ визначає кінець підпрограми й повертає МП до виконання основної програми. У табл. 3 показана повна програма з машинними кодами. САLL складається з коду операції З9, за яким треба адреса підпрограми. Адреса підпрограми зберігається в такий же спосіб, як і адреса переходу. Команда RЕТ складається тільки з коду З9. Ніякої адреси команда не містить. Однак же МП "знає", куди вертатися, коли він зустрічає команду повернення наприкінці підпрограми. Коли виконується команда САLL, адреса повернення, тобто адреса команди, що випливає після виклику підпрограми, зберігається в спеціальному місці пам'яті, що називається СТЕК.
Таблиця 3 Лістинг програми запису в комірку пам'яті нулів і одиниць
Основна програма
Адреса |
Уміст |
Мітки |
Команди |
Коментарі |
8000 |
СD |
Н |
САLL 0 |
Підпрограма запису нулів |
8001 |
09 |
|
|
|
8002 |
80 |
|
|
|
8003 |
СD |
|
САLL 1 |
Підпрограма запису одиниць |
8004 |
ОF |
|
|
|
8005 |
80 |
|
|
|
8006 |
СЗ |
|
JМР Н |
Повтор |
8007 |
00 |
|
|
|
8008 |
80 |
|
|
|
Підпрограма запису нулів у комірку пам'яті 8020 | ||||
8009 |
ЗЕ |
0: |
MVI А, 00 |
Записати в А нулі |
800А |
00 |
|
|
|
800B |
32 |
|
STA 8020 |
Записати вміст А в комірку |
800С |
20 |
|
|
|
800D |
80 |
|
|
|
800Е |
З9 |
|
RET |
Повернення в основну програму |
Підпрограма запису одиниць у комірку пам'яті 8020
| ||||
800F |
3E |
1: |
МVI А, FF |
Записати в А одиниці |
8010 |
FF |
|
|
|
8011 |
32 |
|
SТА 8020 |
Записати вміст А в осередок
|
8012 |
20 |
|
|
|
8013 |
80 |
|
|
|
8014 |
З9 |
|
RЕТ |
Повернення в основну програму |
Коли наприкінці підпрограми зустрічається команда RЕТ, МП одержує зі СТЕКА адреса повернення, програма вертається до основної програми. Робота СТЕКА здійснюється майже повністю автоматично. Більш докладно СТІК буде описаний у наступних розділах.
Проведемо експеримент по використанню програми, наведеної в табл.3.
1. Уведіть дану програму на згадку "Мікролаб". .
2. Поставте тумблер режиму в положення КРОК.
3. Установите початкову адресу програми /8000/ і натисніть кнопку ПУСК. Виконується перша команда програми /САLL ПРО/, і відбувається перехід до підпрограми /адреса 8009/.
4. Натисніть кнопку ПУСК. Виконується наступна команда, що є першою в підпрограмі. В акумулятор заносяться нулі.
5. Натисніть кнопку ПУСК. Уміст акумулятора заноситься в комірку пам'яті з адресою 8020. Перевірте вміст цього осередку. Там записані нулі.
6. Натисніть кнопку ВОЗВР. Виконається команда RЕТ, і ви повернетеся в основну програму /адреса 8003/.
7. Натисніть кнопку ПУСК. Відбудеться перехід у другу підпрограму /адреса 800F/.
8. Натисніть два рази кнопку ПУСК. В акумулятор запишуться одиниці /FF/, і вміст акумулятора перепишеться в комірку пам'яті з адресою 8020.
9. Перевірте, чи є в осередку 8020 ГГ.
10. Натисніть кнопку ВОЗВР. Виконається команда повернення /RЕТ/, і відбудеться перехід до основної програми /адреса 8006/. По цій адресі будуть записані команди безумовного переходу до адреси 8000.
Після цього програма почне виконуватися знову.
11. Натисніть кілька разів кнопку ПУСК, переглянете програму ще раз.