Теоретичні відомості
ЛАБОРАТОРНА РОБОТА №1
ВИВЧЕННЯ СТРУКТУРИ, АЛГОРИТМУ РОБОТИ І ПРОГРАМУВАННЯ МІКРОПРОЦЕСОРА INTEL
КР580ВМ80)
Мета роботи: вивчити структуру, алгоритм роботи, методи програмування мікропроцесорів
Теоретичні відомості
Вивчення МП 8080 (КР580ВМ80) припускає ознайомлення студентів з генератором тактових сигналів 8084 (КР580ГФ24) та системним контролером 8228 (КР580ВК28).
Мікропроцесор Intel 8080 (КР580ВМ8) має фіксований набір команд. Час виконання команд визначається часом отримання, декодування і виконання команди. Найбільш короткий часовий інтервал називається машинним тактом і рівний періоду синхросигналів, що подаються на ВІС мікропроцесора. Мінімальна тривалість одного такту рівна 400 не для тактової частоти F=2,5 МГц. Час, необхідний для витягу 1 байта інформації із пам'яті чи зовнішнього пристрою або виконання команди, визначаємої одним машинним словом, називається машинним циклом. Машинний цикл може включати в себе 3-5 машинних тактів. В залежності від виду команди час виконання команди може складатися з 1-5 машинних циклів. Для МП КР580ВМ80 є 10 різних типів машинних циклів:
1) добування коду команди (цикл М1);
2) читання даних із пам'яті;
3) запис даних в пам'ять;
4) добування даних із стека;
5) запис даних в стек;
6) введення даних із зовнішнього пристрою;
7) запис даних у зовнішній пристрій;
8) цикл обслуговування переривання;
9) зупинка;
10) обслуговування переривання під час зупинки.
Першим машинним циклом при добуванні будь-якої команди є цикл М1. На кожному машинному циклі МП перевіряє стан сигналу READY на своєму вході. Нульвий сигнал НІ цьому иході призупиняє роботу МП.
Внутрішні регістри (А - акумулятор і регістри читального призначення (РЗП) - B,C,D,E,H,L) МП 8-рочрядпі, причому регістри можуть утворювати пари, реалізуючи т.Ч. 16-рочрядні % регістрові пари - B,D,H. Лічильник команд - PC, вказівник стека SP - 16р. регістри. Регістр прапорців F містить наступні ознаки: прапорець переносу С (встановлюється в 1 при виникненні переносу із старшого розряду акумулятора), прапорець нульового результата Z, прапорець знака S (встановлюється в 1, якщо старший розряд результата в акумуляторі рівний 1), прапорець допоміжного переносу АС (встановлюється в 1 при переносі з молодшої тетради акумулятора в старшу), прапорець парності Р (встановлюється в 1 при парному числі одиниць в байті результату, розміщеному в акумуляторі).
До складу МП входять перераховані регістри, АЛП, регістр ознак, схема десяткової корекції, допоміжний аккумулятор, дешифратор команд і формувач машинних циклів, схема управління і синхронізації, регістр адреси із схемами Інкрементування і декрементування, буфер адреси і буфер даних.
Обмін з зовнішніми пристроями та.пам'яттю МП здійснює через 8-розрядну шину даних. МП КР580ВМ80 адресується до пам'яті і зовнішніх пристроїв через 16-розрядну шину адреси. Максимальне число комірок пам'яті, до яких він може звертатися, рівне 64К.
Команди МП реалізовані так, що вони маніпулюють з одно- і двохбайтними двійковими словами (числами). В систему команд МП не включені команди обробки двійкових чисел із знаками і чисел з плаваючою комою, а також команди десяткової арифметики.
Для реалізації команд застосовуються одно-, двох- і трьохбайтні формати. В першому байті команди чи його частині розміщується код операції, а в інших частинах і байтах - операнди чи вказівники операндів, утворюючи таким чином нуль, одно- і двохадресні команди. Загальне число допустимих кодів команд рівне 244. Деякі групи кодів команд, що виконують однотипні операції над різними даними, мають однакові мнемоніки асемблера. Загальне число мнемонік рівне 78. Для адресації операндів використовуються
наступні типи адресації: неявна, безпосередня, пряма регістрова, пряма, непряма регістрова, стекова В двохадресних командах застосовуються комбінації перерахованих видів адресації.
В МП КР580ВМ80 реалізовані наступні класи команд: пересилок (число кодів рівне 97), арифметичні (74), логічні (32), змінюючі порядок обчислень (35), керуючі (6).
До складу першого класу входять однонаправлені пересилки, циклічні пересилки, команди вводу-виводу.
До складу другого класу входять команди додавання, додавання з урахуванням переносу, обрахування, обрахування з урахуванням зайому, інкрементування, декрементування, десяткової корекції, порівняння.
До складу третього класу входять команди логічного І, логічного АБО, виключаючого АБО, інвертування вмісту акумулятора, зсувів.
До складу четвертого класу входять команди безумовних переходів, умовних переходів, переходів до підпрограм, повернення з підпрограм, обробки переривань.
До складу п'ятого класу входять команди ТС, CMC, HLT, NOP, E1, D1
Програма записується в мікроЕОМ в послідовних комірках пам'яті,
Розглянемо як приклад програму, що добуває число із адреси пам'яті 0800h, інвертує його і записує результат в адрес пам'яті 0801h.
В мнемокодах асемблера програма буде мати вигляд, представлений в Табл. 1.
.
Таблиця 1. Приклад програми в мнемокодах асемблера
Асембле Р
| Коментар
| LDA 0800
| Загрузити аккумулятор вмістом комірки пам'яті по адресу 0800
| СМА
| Інвертувати число
| STA 0801
| Записати результат по адресу 0801
| RST1
| Перервати виконання програми
|
При запису програми всі числа представляються в шістнадцятковій системі числення (h - hex.).
Для запису програми в пам'ять мікроЕОМ необхідно перевести мнемокоди команд в машинні коди. У зв'язку з тим, що команди в програмі можуть бути одно-, двох-, трьохбайтні, то вони займають в пам'яті відповідно один, два, і три адреси. Тоді програма розміститься по адресам в наступному порядку (Табл.2).
Таблиця 2. Приклад програми в машинних кодах.
Адрес
| Коди
| Коментар
|
| ЗА
| код команди LDA
|
|
| молодший байт адреса
|
|
| старший байт адреса
|
| 2F
| код команди СМА
|
|
| код команди STA
|
|
| молодший байтадреса
|
|
| старший байт адреса
|
| CF
| код команди RST 1
| Запис програми зручно проводити в більш компактній формі. В програмі вказується початковий адрес кожної команди і при цьому розуміється, що команди будуть займати від одної до трьох послідовних комірок в залежності від їх довжини (одно-, двох-, трьохбайтна). Це дозволяє скоротити об'єм при написанні програми (Табл.З).
Таблиця 3. Приклад програми в компактній формі.
Адрес
| Коди
| Асемблер
| Коментар
|
| ЗА1008
| LDA, 0800
| одержати число
|
| 2F
| СМА
| інвертувати число
|
|
| STA, 0801
| записати по адресу 080lh
|
| CF
| RST1
| перервати виконання програми
|
Дата добавления: 2015-05-19 | Просмотры: 621 | Нарушение авторских прав
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|