Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
к.л.Микропроцессоры в пристроях РТ(укр).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
588.8 Кб
Скачать

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.