Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Відповіді на залік по Ігнату(lg).doc
Скачиваний:
3
Добавлен:
14.09.2019
Размер:
3.87 Mб
Скачать

5. Способи адресації мп к580 вм80.

В МП використовуються п'ять наступних способів адресації.

1. Пряма адресація – коли молодша половина 16-ти розрядної адреси (LAD) міститься у 2-му байті 3-х байтової команди, а старша половина (HAD) – в її 3–му байті. Перший байт команди використовується для розміщення КОП. Формат такої команди має вигляд (мал. 1.6)

КОП

- 1-й байт

LAD

- 2-й байт

HAD

- 3-й байт

Мал. 1.6 Формат команди при прямій адресації

Використання такої команди призводить або до зчитування МП даних з пам'яті, або до їх запису з МП в пам'ять ( за наявною у команді адресою).

Позитивною якістю таких команд є простота їх реалізації, а недоліком – довжина у 3-и байти, що потребує 3-х МЦ, з яких 1-й – вибір коду команди, а 2-а інших – читання пам'яті.

2. Непряма (посередня) адресація. При необхідності багаторазового звернення до якоїсь чарунки пам'яті її адресу зручніше зберігати не в самій команді, а в одному з внутрішніх регістрів в МП. Тоді в команді потрібно вказати тільки номер (а верніше двійковий код) регістра, в якому зберігається адреса потрібної чарунки пам'яті. Така адресація зветься непрямою.Для збереження 16-ти розрядної адреси однобайтові регістри МП об'єднуються у регістрові пари, які поіменовані по назві першого регістра пари.

Регістрові пари кодуються наступним чином (табл. 1.3)

Таблиця 1.3

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

Ім'я регістрової пари

Двійковий код

ВС

DE

HL

SP

B

D

H

SP

00

01

10

11

У першому регістрі пари завжди зберігається старший байт адреси, а в другому – молодший байт. Зрозуміло, що двійковий код регістрової пари легко розміщується в однобайтовій команді разом з КОП, що дозволяє виконувати команди з непрямою адресацією всього лише за один МЦ. Це означає, що затрати часу при такій адресації значно менші, ніж при прямій адресації.

Як приклад, розглянемо схему виконання команди непрямого завантаження акумулятора вмістом чарунки пам'яті з адресою 00А1, яка зберігається в регістровій парі DE.

акумулятор А

Оскільки при зверненні до чарунки пам'яті її вміст не руйнується, то він може використовуватися багаторазово.

3. Безпосередня адресація. В командах з безпосередньою адресацією дані операнда знаходяться в 2-му, або в 2-му і 3-му байтах, а в 1-му байті розміщується КОП даної команди. При такому способі адресації нема потреби вказувати будь-яку адресу пам'яті, бо дані беруться безпосередньо з команди, куди вони заносяться при програмуванні. Такими даними, як правило, є певні константи, які заздалегідь відомі програмісту.

На мал. 1.8 показана схема виконання команди безпосереднього завантаження акумулятора А даними, які зберігаються у 2-му байті команди.

4. Регістрова адресація. Якщо дані, що обробляються, вже знаходяться у внутрішніх регістрах МП, то звернутися до них можна вказавши лише двійкові коди регістрів безпосередньо в 1-му байті команди. Така адресація зветься регістровою. Оскільки в наявності в МП є 7-м регістрів, то для їх кодування застосовується 3-и двійкових розряди, а відповідні коди регістрів наведені в табл.1.4.

Таблиця 1.4

Ім'я регістра

Двійковий код

В

С

D

E

H

L

A

000

001

010

011

100

101

111

Як приклад, розглянемо схему виконання команди пересилки даних з регістра В до регістра С, коли В є регістр-джерело, а С – регістр-приймач. (мал. 1.9) Асемблерна назва такої однобайтової команди є MOV C, B.

Якщо в кодах регістрових команд (наприклад, пересилки) в полі кода-регістра-приймача або регістра-джерела присутній двійковий код 110, то це свідчить про те, що треба звернутися не до одного з наведених вище регістрів, а до деякої чарунки пам'яті (memory), яка умовно позначається як М. Адреса цієї чарунки повинна зберігатися в регістровій парі HL, при цьому старша півадреса розміщена в регістрі H, а молодша – в L. Команди, в яких разом з регістровою використовується непряма адресація, звуться командами з посередньо-регістровою адресацією.

Схему виконання команди з посередньо-регістровою адресацією розглянемо на прикладі однобайтової команди пересилки даних з пам'яті до регістру С, асемблерна назва якої є MOV C,M. (мал. 1.10).

Регістр Н

5. Стекова адресація. При стековій адресації адреса операнда вказується показчиком стеку SP, в якому знаходиться поточна адреса чарунки зі стекової області пам'яті. Таким чином, стекова адресація є посередньою, а відзнакою від раніше розглянутого способу посередньої адресації є використання показчика стеку. Це безпосередньо витікає з коду команд роботи зі стеком.