
- •Конспект лекцій
- •1 Представлення інформації в мікро-еом
- •2 Класифікація еом
- •3 Типова структура мікропроцесорних
- •2 Мікропроцесори
- •2.1 Архітектура з трьома шинами
- •3 Архітектура 8-розрядного однокристального
- •3.1 Загальна характеристика однокристального мп серії кр580
- •3.2 Структурна схема мп
- •1 Зчитування коду чи команди даних з пам'яті або зовнішнього пристрою
- •2 Запис даних у пам'ять чи зовнішній пристрій
- •3 Робота в режимі захоплення
- •4 Робота в режимі зупинка
- •5 Обслуговування запитів на переривання
- •6 Початкова установка
- •3 Основи програмування мікропроцесорних
- •3.1 Класифікація команд мікропроцесора
- •3.2 Види адресації
- •3.3 Структура і формати команд мп кр580вм80
- •4 Програмований прістрій вводу-виводу паралельної інформації кр580вв55
- •Література
3.2 Види адресації
Однією з найважливіших архітектурних характеристик МП є перелік можливих способів звертання до пам'яті або видів адресації. Можливості МП по адресації істотні з двох точок зору.
По-перше, великий обсяг пам'яті вимагає великої довжини адреси, тому що n-розрядна адреса дозволяє звертатися до пам'яті ємністю 2n слів. Типові 8-розрядні слова МП дають можливість безпосередньо звертатися тільки до 256 комірок пам'яті, що явно недостатньо. Якщо врахувати, що звертання до пам'яті є операцією що зустрічається найбільш часто, то очевидно, що ефективність використання МП багато в чому визначається способами адресації до пам'яті великого обсягу при малій розрядності МП.
По-друге, для зручності програмування бажано мати просту систему формування адрес даних при роботі з масивами, таблицями і покажчиками. Розглянемо способи рішення цих проблем.
Якщо адресне поле в команді є обмеженим і недостатнім для безпосереднього звертання до будь-якої комірки пам'яті, то пам'ять у таких випадках розбивають на сторінки, де сторінкою вважається 2n комірок пам'яті.
Для узгодження адресного полю команди малої розрядності з пам'яттю великого обсягу (для рішення "сторінкової" проблеми) у МП застосовуються різні види адресації:
Пряма адресація до поточної сторінки. При такій адресації програмний лічильник розбивається на два поля; старші розряди вказують номер сторінки, а молодші - адреси осередку на сторінці. В адресному полі команди розміщається адреса осередку на сторінці, а адреса сторінки повинна бути встановлена якимсь іншим способом, наприклад за допомогою спеціальної команди.
Пряма адресація з використанням сторінкового регістра. У МП повинний бути передбачений програмно доступний сторінковий регістр, що завантажується спеціальною командою. Цей регістр додає до адресного поля команди кілька розрядів, необхідних для адресації до всієї пам'яті.
Пряма адресація з використанням подвійних слів. Для збільшення довжини адресного полючи команди під адресу виділяється додаткове слово (а якщо потрібно, то і два).
Адресація відносно програмного лічильника. Адресне поле команди розглядається як ціле зі знаком, що складається з умістом програмного лічильника для формування виконавчої адреси. Такий спосіб відносної адресації створює сторінку, що плаває, і спрощує переміщення програм у пам'яті.
Адресація відносно індексного регістра. Виконавча адреса утворюється підсумовуванням вмісту індексного регістра й адресного полю команди, розглянутого як ціле зі знаком. Індексний регістр завантажується спеціальними командами.
Непряма адресація. При непрямій адресації в адресному полі команди вказується адреса на поточній сторінці, по якому зберігається виконавча адреса. У полі команди при цьому потрібний додатковий розряд - ознака непрямої адресації. Виконавча адреса може зберігатися не в комірці пам'яті, а в регістрі загального призначення. У цьому випадку непряма адресація називається регістровою.
3.3 Структура і формати команд мп кр580вм80
Система команд МП серії КР580ВМ80 містить команди трьох форматів: однобайтні, двобайтні і трьохбайтні.
Уміст першого байта вказує на формат команди, код операції, вид адресації і регістри чи регістрові пари, якщо вони беруть участь у виконанні операції. При цьому неможливо вказати конкретні розряди, що виділяються під перші три з зазначених складових команди, тому що вони можуть знаходитися в будь-яких розрядах команди. Але, незважаючи на це, будемо вважати що вони кодуються як одне поле, що називається полем коду операції. Варіанти форматів першого байта команди приведені на рисунку 9.
Якщо у виконанні операції беруть участь регістри, то один чи два з них можуть бути зазначені в першому байті команди. При цьому під номери регістрів у поле команди виділяються цілком визначені розряди: три молодших розряди (b2 - b0) кодують номер регістра джерела, що містить операнд, а три середніх (b5 - b3) - номер регістра-приймача, у який засилається результат операції. У тих випадках, коли обоє чи один з цих регістрів не беруть участь у виконанні операції, відповідні розряди використовуються під код операції.
Прийнято наступне кодування регістрів:
000 - регістр B, 100 - регістр Н,
001 - регістр C, 101 - регістр L,
010 - регістр D, 110 - комірка пам'яті,
011 - регістр Е, 111 - акумулятор А.
Код 100 є ознакою непрямої адресації до пам'яті за допомогою 16-розрядної адреси, розміщеної в регістрах Н и L. У залежності від розташування цього коду в команді, звертання до відповідної комірки пам'яті виробляється або за операндом, або для запису результатів операції.
Ряд команд МП передбачає обробку або передачу чисел подвійної довжини. У цих випадках пари регістрів В и С, D і Е чи Н и L поєднуються в 16-розрядні регістри, що мають номери 00, 01 і 10 відповідно. Під номери регістрових пар у командах виділяються розряди b2 і b1 (регістр-джерело), b5 і b4 (регістр-приймач), а розряди b0 і b3 використовуються для вказівки коду операції.
До двобайтних команд у МП відносяться команди з безпосередньою адресацією і команди введення-виведення. Відповідно другий байт команди цієї групи містить 8-розрядний операнд чи 8-розрядну адресу пристрою введення чи виведення.
У трьохбайтних командах другий і третій байти містять 16-розрядні адреси (у командах із прямою адресацією) чи 16-розрядні операнди (у командах завантаження регістрових пар і покажчика стека).
Після виконання кожної операції а АЛУ виробляється п'ять ознак, значення яких можуть впливати на виконання наступних команд обробки інформації й умовної передачі керування. Однак варто мати через, що різні команди по-різному впливають на окремі ознаки.
Для зручності збереження і відновлення стану МП під час переривань і переходу до підпрограм усі зазначені ознаки зберігаються в спеціальному регістрі - регістрі ознак. Розташування ознак у розрядах регістра приведено в таблиці.
-
D7
D6
D5
D4
D3
D2
D1
D0
S
Z
0
AC
0
P
1
CY
де S - ознака "знака" (приймає значення старшого розряду результату);
Z - ознака нульового результату;
АС - ознака допоміжного переносу (якщо є перенос між тетрадами байта, то АС=1, інакше АС=0;
Р - ознака парності результату (якщо число одиниць у байті результату парне, те Р=1, інакше Р=0);
С - ознака чи переносу займа (якщо при виконанні команди виник перенос зі старшого чи розряду позики в старший розряд то С=1, інакше С=0).
Примітка: Для команд логічного множення ознака допоміжного переносу АС приймає значення четвертого розряду результату.
Цілком система команд МП серії КР580ВМ80 приведена в додатку до учбового посібника "Мікропроцесори і мікропроцесорні системи". Там же для кожної команди вказується як, після її виконання, змінюється значення кожної ознаки: установлюється відповідно до результату операції (+), не змінюється (-), скидається в нуль (0) чи встановлюється в одиницю (1).
У загальному випадку команда повинна містити наступну інформацію:
- код операції, що вказує операцію, що повинний виконати МП;
- адреси двох операндів ( що складаються, або віднімаються і т.д.). Якщо який-небудь з операндів є константою, то замість його адреси в команді може бути задане значення самого операнда. Однак ця обставина повинна бути відображена в коді операції, що б МП використовував відповідну частину команди з зазначеним її призначення;
- адреса комірки пам'яті в який повинний бути поміщений результат операції;
- адреса наступної команди.
Таким чином команда в загальному випадку є чотирьохадресною. Однак, така структура команд приводить до більш довгого формату команд, що, у свою чергу, сполучено з більш складним процесом їхньої обробки і структурою процесора. Тому, у МП техніці найбільше поширення одержали безадресні й одноадресні команди, що дозволяють побудувати простий процесор. Однак, при виконанні складних операцій знаходять застосування різні формати команд.
У системі команд МП серії 580 маються однобайтні, двобайтні і трьохбайтні команди.
Інформація про спосіб адресації виконуваної команди міститься в коді операції першого байта команди.
Для прискорення обчислень деякі операнди зберігаються в блоці РОН. Команди, що працюють з цими операндами, використовують укорочені адресні коди (регістрову адресацію).
Ці команди дозволяють виключити порівняно довгий цикл звертання до ОЗП і тим самим істотно підвищити швидкість виконання операцій. У зв'язку з обмеженою розрядністю РОН і при роботі з великим масивом даних, використовуються інші методи адресації, що дозволяють звертатися до операндів, розташованим у зовнішній стосовно МП пам'яті. Найбільш розповсюдженою є непряма регістрова адресація, що використовує регістрову пару HL.