ВИВЧЕННЯ КОМАНД МІКРОПРОЦЕСОРА КР580, РОЗРОБКА ПРОГРАМИ ВИВЕДЕННЯ ІНФОРМАЦІЇ НА ДІСПЛЕЙ
Мета роботи: дослідження команд мікропроцесора КР580, складання програм на мові асемблера.
Коротка характеристика досліджуваного процесора
Для полегшення вивчення принципів програмування МП-систем на низькому рівні на мові асемблера, а також придбання базових понять в області організації ЕОМ і МПС, була розроблена програмна модель-емулятор МПС, побудована на базі особливостей розглянутого мікропроцесора (рисунок 1).
Малюнок 1 - Програма-емулятор мікропроцесорної системи КР580.
Даний емулятор дозволяє: написання програм на мові асемблера, використовуючи систему команд МП КР580ВМ80А, їх налагодження та виконання в тактовому, командному та наскрізному режимах; вивчити принципи і порядок виконання команд; набути навичок роботи з зовнішніми пристроями МП-системи; отримати уявлення про організацію зовнішньої і внутрішньої (реєстрової) пам'яті і стековій області.
Програма має дружній і приємний інтерфейс, зручна у використанні і має функції збереження, експорту та друку даних. Все це дозволяє легко і зручно освоїтися в ній, а також, отримати всі необхідні навички. Також, емулятор може бути корисний і для досвідчених людей, наприклад, в якості візуалізованого помічника в програмуванні розробляється ними МП-системи на базі КР580ВМ80 (i8080).
У можливості емулятора входить: робота з 5-ма зовнішніми пристроями, такими, як монітор, НГМД, НЖМД, мережевий адаптер і принтер; налагодження та виконання програм в тактовому, командному та наскрізному режимах; робота з усім спектром системи команд даного МП; збереження, завантаження і друк даних і результатів; ручне введення даних в ОЗУ і РОН. Також, до складу дистрибутива включено докладний посібник користувача, опис системи команд і файли-образи ОЗУ емулятора для прикладу.
Архітектура мікропроцесора кр580вм80
Структурна схема МП КР580ВМ80А приведена на малюнку 2.
Малюнок 2 - Структура МП КР580ВМ80.
До складу мікропроцесора входять:
8-розрядний арифметико-логічний пристрій АЛП (ALU);
регістр ознак RS, що фіксує ознаки, що виробляються АЛУ в процесі виконання команди;
акумулятор (А);
регістр акумулятора (RGa);
регістр тимчасового зберігання операндів (RGb);
десятковий коректор (DAA), який виконує переклад інформації з двійковій в двійковій-десяткову форму;
регістр команд (IR), призначений для зберігання першого байта команди, що містить код операції;
дешифратор команд (DCU);
блок регістрів для прийому, видачі і тимчасового зберігання інформації в процесі виконання програм;
схема управління і синхронізації (CU), що формує послідовності керуючих сигналів для роботи ALU і регістрів;
односпрямований 16-розрядний буферний регістр адреси (ВА);
двонаправлений 8-розрядний буферний регістр даних (BD);
двонаправлений мультиплексор (MUX) для обміну інформацією між ALU і блоком регістрів по внутрішній шині даних (Internal Data Bus.
Блок регістрів включає:
програмний лічильник (РС), призначений для зберігання адреси чергової команди (при виконанні лінійних програм цю адресу автоматично збільшується на 1, 2, 3 в залежності від довжини виконуваної команди - 1, 2 або 3 байти відповідно);
покажчик стека (SP);
регістр адреси (RGA);
шість 8-розрядних регістрів загального призначення B, C, D, E, H, L, які можуть об'єднуватися в парні 16-розрядні регістри BC, DE, HL;
допоміжні розрядні регістри W, Z.
Регістри RGa, RGb, IR, W, Z, RGA користувачеві програмно недоступні.
Крім того, МП має 16-розрядний односпрямований 3-стабільний канал адреси А (15-0), 8-розрядний двонаправлений 3-стабільний канал даних D (7-0), чотири вхідних (RESET, READY, INT, HOLD) і шість вихідних (SYNC, DBIN, READY, WAIT, INTE, HLDA) висновків сигналів управління.
Десятковий коректор DAA полегшує роботу з числами, представленими в 10-чной системі числення.
Буферні регістри даних BD і адреси BA використовуються для буферизації внутрішніх шин даних і адреси з боку зовнішньої магістралі.
Схема управління і синхронізації виконує ряд функцій управління і синхронізації:
забезпечує вибірку команд і операндів;
організовує правильне функціонування АЛУ;
забезпечує доступ до всіх регістрах МП;
синхронізує УВВ і управляє їх роботою;
призупиняє роботу МП в режимі очікування і відключає МП від системної магістралі в режимі ПДП.
Мультиплексор MUX забезпечує підключення до внутрішньої магістралі МП необхідного регістра з блоку регістрів.
МП КР580ВМ80А забезпечує адресацію зовнішньої пам'яті до 64 Кбайт і підключення до 256 пристроїв введення-виведення.
З метою спрощення розуміння принципу роботи МП, дамо спочатку словесний опис його функціонування під час виконання команд програми:
Перед виконанням чергової команди МП містить її адресу в програмному лічильнику РС;
МП звертається до пам'яті за адресою, що міститься в РС, і зчитує з пам'яті перший байт черговий команди в регістр команд IR;
Дешифратор команд DCU декодує міститься в IR код команди і в результаті його декодування, зокрема, "дізнається":
яка довжина цієї команди (1, 2 або 3 байти);
де зберігаються її операнди;
які дії потрібно виконати над операндами;
Відповідно до отриманої від DCU інформацією пристрій управління виробляє впорядковану в часі послідовність мікрооперацій, що реалізують приписи команди, в тому числі:
витягує операнди з регістрів і пам'яті;
виконує над ними запропоновані кодом команди арифметичні, логічні або інші операції;
в залежності від довжини команди модифікує вміст РС на 1, 2 або 3 (при лінійному алгоритмі);
передає управління черговий команді, адреса якої знову знаходиться в програмному лічильнику РС.
Розглянемо, наприклад, команду складання вмісту акумулятора і регістра В, має мнемонічне позначення ADD B. Команда ADD B - однобайтового і має код операції 80h
На початку виконання цієї команди МП виставляє на шину адреси адресу команди, зчитує з пам'яті її код 80h і поміщає його в регістр команд IR. Після декодування команди пристрій управління (УУ) виробляє визначену командою послідовність керуючих сигналів, що приводить до наступних дій:
вміст акумулятора копіюється в RGa;
вміст регістра В копіюється RGb;
виробляється підсумовування RGa + RGb і результат складання поміщається в акумулятор А;
в залежності від результату операції модифікується вміст регістра прапорів RS;
Вміст програмного лічильника РС збільшується на 1, так як команда ADD B є однобайтового, і тепер програмний лічильник містить адресу наступної команди програми і т.д.
