Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка для лаб Арх_комп(Схемтех).doc
Скачиваний:
6
Добавлен:
08.05.2019
Размер:
1.76 Mб
Скачать

Лабораторна робота № 3 Тема: дослідження програмно-доступних регістрів мікропроцесора кр580ик80

Мета: вивчити програмно доступні регістри МП і проконтролювати їх стан в процесі виконання програми.

Коротка інформація

При виконанні команд МП оперує з даними, які надходять до внутрішніх регістрів, здійснює обробку даних, формує і модифікує адреси, за якими здійснюється обмін з пам’яттю і зовнішніми пристроями. Крім того, керуючий пристрій МП виробляє сигнали синхронізації всіх процесів обміну в мікропроцесорній системі. Основні вузли МП, що беруть участь в обробці і керуванні, показані на рис. 3.1.

Рис. 3.1. Структурна схема МП КР580ВМ80А.

Призначення сигналів:

  • INTсигнал «ЗАПИТ ПЕРЕРИВАННЯ», який аналізується при виконанні поточної команди;

  • INTE – сигнал «ЗАПИТ ПЕРЕРИВАННЯ ЗАДОВІЛЬНЕНИЙ», який відображує стан тригера дозволу переривання МП і при INTE =1 вказує, що переривання дозволене;

  • WAIT – сигнал «ОЧІКУВАННЯ». WAIT = 1означає, що МП знаходиться в стані очікування або зупинки;

  • HOLD – сигнал «ЗАХОПЛЕННЯ». HOLD = 1 переводить МП в стан захоплення;

  • HOLDA – сигнал «ПІДТВЕРДЖЕННЯ ЗАХОПЛЕННЯ». HOLDA = 1 вказує, що МП знаходиться в стані захоплення, відключений від ША та ШД і периферійні пристрої можуть самостійно використовувати ША та ШД для прямого доступу до пам’яті;

  • READY – сигнал «ГОТОВНІСТЬ». READY = 0 означає, що пристрій, з яким МП обмінюється інформацією, не готовий до передачі даних. При такому значенні сигналу МП переходить в стан очікування і залишається в ньому до надходження READY = 1;

  • RESET – сигнал «СКИДАННЯ». При RESET = 1 виконання операцій в МП переривається, лічильник команд, регістр команд, внутрішні тригери дозволу переривання і підтвердження захоплення скидаються в нульовий стан, а МП виводиться із стану зупинки або захоплення;

  • DBIN – сигнал «ЧИТАННЯ». DBIN = 1 вказує, що ШД знаходиться в режимі прийому. DBIN можна використовувати як стробуючий сигнал дозволу прийому інформації з ШД в МП;

  • – сигнал «ЗАПИС».  = 0 вказує, що МП видав інформацію на ШД. використовується також для керування записом інформації на зовнішні пристрої;

  • SYNC – сигнал синхронізації, який видається МП в першому такті кожного циклу виконання команди. За цим сигналом на ШД видається інформація про стан МП;

  • 1, 2 – зсунуті в часі сигнали тактової частоти. Безперервно надходять від зовнішнього генератора прямокутних імпульсів.

Виконання програми починається з звертання до пам’яті за адресою, що міститься в програмному лічильнику (РС), і завантаження зчитаного в пам’яті байта в регістр коду операції (РгКОП). Цей перший байт завжди інтерпретується як код операції. Далі, в залежності від команди, дії щодо її виконання можуть суттєво різнитись.

Процес виконання команди може займати від одного до п’яти циклів, які позначаються М1, М2, М3, М4 і М5.

Для МП КР580ИК80 існує десять різних типів циклів:

  1. видобування коду команди (завжди М1);

  2. читання даних з пам’яті;

  3. запис даних в пам’ять;

  4. видобування із стеку;

  5. запис даних в стек;

  6. введення даних із зовнішнього пристрою;

  7. запис даних у зовнішній пристрій;

  8. цикл обслуговування переривання;

  9. зупинка;

  10. обслуговування переривання при роботі МП в режимі зупинки.

Кожний з циклів може тривати до п’яти тактів, які позначаються Т1, Т2, Т3, Т4, Т5. Кожний машинний цикл має три обов’язкових такти (Т1, Т2, Т3), під час яких виконується звертання до пам’яті. В такті Т1 на шину адреси виставляється адреса, а на шину даних — байт стану, що визначає тип цього машинного циклу. Крім того в такті Т1 циклу М1 збільшується на одиницю вміст програмного лічильника (РС).

На основі байта стану за допомогою зовнішніх логічних схем формуються сигнали керування МП-системою.

В такті Т2 перевіряється наявність сигналу «Готовність» (READY) від пристрою, адреса якого була виставлена на шину адрес, перевіряється сигнал на зовнішніх виводах «Захоплення» (HOLD) і стан «Зупинка» (HLTA).

Якщо сигнал «Готовність» відсутній, то на такті Т3 МП припиняє роботу і переходить в режим очікування, який може тривати необмежену кількість тактових імпульсів. Після появи готовності, а відповідно і на шині даних самих даних, при надходженні чергового тактового імпульсу здійснюється обмін інформацією між МП і зовнішніми елементами системи, і, якщо це останній машинний цикл команди, настають такти Т4 і Т5, під час яких команда виконується. При виконанні окремих циклів можуть бути відсутніми такти Т4 і Т5 або Т5. В останньому циклі перевіряється наявність запиту на переривання і, якщо він є, призводиться до дії послідовність операцій обробки переривань. Якщо запиту немає, виконання команди завершується.

Відмінність машинних циклів читання даних з пам’яті, стеку або зовнішнього пристрою в порівнянні з циклом М1 полягає лише в тому, що МП буде сприймати числа, отримані на такті Т3 по шині даних не як код команди, а як дані.

Потік даних оброблюється іншими вузлами МП. Арифметична і логічна обробка здійснюється арифметико-логічним пристроєм (АЛП). Вихідні дані можуть передаватись в МП по шині даних від зовнішніх вузлів системи (пам’ять, пристрої введення-виведення (ПВВ)) до одного з регістрів загального призначення, які мають назви A, B, C, D, E, H, L.. Всі перераховані регістри 8-бітові. Особливість регістрів B, C, D, E, H, L – можливість їх об’єднання попарно (BC, DE, HL) в 16-бітові регістри. В цьому випадку вміст пар регістрів може використовуватись як адреса операнду.

Регістр A – має власну назву «акумулятор» – універсальний регістр, через який здійснюється обмін із зовнішнім середовищем системи; в якому розміщується операнд або результат для великої групи команд. Акумулятор зв’язаний з АЛП і шиною даних.

В МП також є регістр тимчасового зберігання, з’єднаний з іншим входом АЛП. Цей регістр недоступний для програміста. Він є джерелом другого даного при виконанні команд і керується автоматично схемами керування МП.

За результатами виконання команд встановлюються або скидаються спеціальні тригери, які об’єднані в спеціальний регістр ознак (або прапорців). Аналіз тригерів здійснюється командами умовних переходів. Наприклад, якщо результат виконання команди дорівнює нулю, встановлюється прапорець нуля. Він може бути проаналізований командою JNZ (перехід, якщо не нуль) або командою JZ (перехід, якщо нуль).

Розглянемо послідовність дій при виконанні однієї з команд. Припустимо, повинна бути зчитана і виконана команда за адресою 8050. РС через шину адреси виставляє на пристрій пам’яті адресу 8050, і в такті Т3 виставлений на шину даних вміст цього вічка МП запише в регістр коду операції. Цей регістр передає інформацію дешифратору коду операції, який "розпізнає" код і видає керуючі сигнали для схем синхронізації і керування. Ці схеми є своєрідним процесором всередині МП. В спеціальному ПЗП схеми керування зберігається послідовності кодів мікрокоманд і розгалужена логіка керування зв’язками між вузлами МП для кожної з команд. Ці елементи жорстко зв’язані між собою, і ні існуючи зв’язки, ні мікропрограми не можуть бути змінені користувачем, так як встановлюються в процесі виготовлення МП3.

Отже, в регістр коду операції завантажений код команди. Нехай це буде команда MVI A, 33. Для її виконання треба зчитати ще один байт даних, що визначається МП за кодом операції. Автоматично формується нова послідовність дій в машинному циклі М2 і в такті Т3 здійснюється прийом другого байта із ОЗП за адресою 8051. Зчитаний байт (вміст його – 33) розміщується в акумуляторі у відповідності до вказівки в коді команди. Команда завершується збільшенням вмісту програмного лічильника (РС) на одиницю, і підготовлений в такий спосіб лічильник в наступному циклі (циклі М1 наступної команди) виставить на шину адреси код 8052, за яким буде зчитаний КОП нової команди.

Вказівник стеку (SP) є також програмно-доступним регістром, за допомогою якого можна здійснити звертання до стекової області ОЗП, де можна зберігати вміст РС, акумулятора і прапорців — інформацію, що об’єднана під іменем «словостан машини» (PSW), а також інформацію інших регістрів МП. За адресою, яка міститься в SP, певними командами здійснюється як запис для зберігання вмісту, так і читання для відновлення вмісту вказаних регістрів. Робота із стеком буде розглянута в наступних лабораторних роботах.

Користувач мікролабораторії не має можливості контролювати вмісту регістрів МП, що змінюється в процесі автоматичного виконання команд програми, хоча це є конче потрібним в процесі відлагоджування в покроковому режимі роботи. Якщо перемикач «ШАГ–АВТ» встановити в положення «ШАГ», то виконання програми користувача буде відбуватись під керуванням програми монітору і спеціальна підпрограма після виконання кожної команди (при натисненні кнопки «Пуск») переносить вміст програмно-доступних регістрів в спеціально виділену область ОЗП (див. рис. 2.2, графа 4 «Робоча область монітору»). Розподіл вічок ОЗП для запам’ятовування стану регістрів МП показаний на рис. 3.2.

Адреса ОЗП

Регістр

83EB

Акумулятор

83EA

Регістр прапорців

83E9

Регістр B

83E8

Регістр C

83E7

Регістр D

83E6

Регістр E

83E5

Регістр H

83E4

Регістр L

83E3

Старший байт SP

83E2

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

83E1

Старший байт PC

83E0

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

Рис. 3.2. Область запам’ятовування регістрів МП в ОЗП.

Розрізняють роботу монітору в автоматичному і покроковому режимах.

Розглянемо роботу монітору в покроковому режимі. Завантаживши програму в пам’ять і встановивши початкову адресу програми, натисканням кнопки «Пуск» виконуємо першу команду. Після цього виконання програми користувача призупиняється і керування передається монітору, який, як було вказано раніше, запам’ятовує останній стан регістрів МП в ОЗП (адреси 83Е0 – 83ЕВ). На індикатор монітор видає таку інформацію:

ІАР — висвітлює останній вміст РС (адреса наступної команди в програмі користувача);

ІРД — висвітлює на двох крайніх правих індикаторах вміст регістра прапорців, а на двох лівих — вміст акумулятора в момент переходу до нової команди в програмі користувача.

Розташування прапорців в регістрі і відповідне кодування показань ІРД показане на рис. 3.3.

Регістр ознак (прапорців)

S

Z

0

AC

0

P

1

C

Рис. 3.3. Розташування інформації на індикаторах і ознак в регістрі.

Ознаки: S – знак; Z – нуль; AC – додатковий перенос; P – парність; C – перенос.

Після цих операцій монітор переходить до програми сканування клавіатури, що дозволяє продивитись і скоректувати при необхідності вміст області запам’ятовування регістрів МП за допомогою маніпуляцій з клавіатурою. Процедура корекції і зміни полягає в записі за відповідними адресами ОЗП нової інформації за вже відомими правилами.

Для продовження покрокового режиму нема необхідності заносити адресу продовження програми користувача, і на ІАР може бути залишена адреса того вічка, до якого було здійснене останнє звертання в процесі читання або корекції. Достатньо натиснути кнопку «Возвр» і в регістрах МП відновлюється вміст, який зберігався в області запам’ятовування регістрів МП, перевірений і скоректований користувачем. Здійснюється виконання чергової команди програми користувача, після чого керування знову передається монітору, який здійснює ці операції після виконання кожної команди програми користувача.

Для переривання програми в будь-якій точці (а не після кожної команди) монітор має регістр адреси переривання і лічильник циклів переривання (рис. 3.4).

Адреса ОЗП

Дані, що записуються

83F0

Молодший байт адреси переривання

83F1

Старший байт адреси переривання

83F2

Номер циклу переривання

Рис. 3.4. Переривання програми за адресою.

Встановивши початкову адресу програми користувача в регістр адреси, можна починати її виконання за командою «Пуск». Переривання програми користувача і вихід на монітор буде проходити безпосередньо після виконання команди за адресою переривання стільки разів, скільки циклів переривання вказано на лічильнику. Після передачі керування на монітор останній вміст регістрів МП запам’ятовується в робочій області монітору, лічильник циклів переривань скидається до нуля і регістр адреси зберігає вказану раніше адресу переривання. Подальші операції монітору співпадають з покроковим режимом роботи. Індикація проводиться так же, як при покроковій роботі. В лічильник циклів може заноситись максимальне число 255 (FF в 16-ковому коді). Треба підкреслити, що перемикач «ШАГ–АВТ» повинен залишатись в положенні «ШАГ».

На рис. 3.5 показані програмно доступні регістри МП, тобто регістри, які програміст може використовувати у власних програмах.

Рис. 3.5. Програмно доступні регістри мікропроцесора КР580ик80.