Способи адресації даних

Мнемонічна форма запису команд

8-ми і 16-бітові команди складно запам‘ятати і ототожнювати їх з фактичним призначенням.

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

AND – логічне і;

DEC – декремент (накопичення від’ємне);

CLA (clear) – команда очищення;

NOP – nooperation (нема операції);

MOV (move) – пересилання;

HLT (halt) – зупинка;

INC – інкремент (накопичення додатнє);

ADD – сумування;

CLAA – очищення акумулятора А (у випадку двох акумуляторів в МП);

CLAB – очищення акумулятора B (у випадку двох акумуляторів в МП).

Тут А і В – адреси місцезнаходження оброблених даних.

Якщо команда оперує числовими даними або адресами областей пам‘яті, то доцільно використання чисел в адресній частині команди.

Наприклад, код операції з мнемонічною назвою JMP (jump) – перехід вимагає вказання адреси переходу. Так JMP 177756, де адреса виражена 6-ти розрядним вісімковим числом, двійковий еквівалент якого 1111 1111 1110 11102 є адресою області пам’яті. Мнемонічне позначення коду операції JMP легше запам’ятати ніж його вісімковий еквівалент 3038.

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

 

 

1. Неявна адресація

Однобайтова команда 8-ми розрядного МП – це одна з 256 можливих комбінацій 8 біт, які утворюють машинне слово (байт). Якщо МП має пам’ять 64 кБайт, то необхідний доступ до 65536 областей пам’яті. Тому адресна частина команди повинна бути більшою тої, яка може надати 1-байтова команда. Окрім того, в команді завжди повинен бути вказаний код операції.

Яким тоді чином можна використати 1-байтову команду для адресації до даних? Відповідь: 1-байтові команди не адресуються до даних, розташованих в пам’яті; вони керують даними, завантаженими в регістр, регістрову пару, або даними, що зберігаються в області пам’яті, адреса якої знаходиться в регістровій парі.

Наприклад, 1-байтова команда пересилання даних з регістру А в регістр В складається з коду операції; адреси джерела даних (регістр А) і адреси приймача (отримувача) даних (регістр В).

07 16 05 04 03 12 11 10
Код операції Адреса PrB Адреса PrA

 

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

2. Безпосередня адресація

Код операції розташовується в першому байті. За кодом операції йдуть дані, які займають 1 або 2 байти. Ці дані беруться не з пам’яті, їх надає машині програміст при запису команди. Таким чином, при цьому не є необхідним вказання адреси пам’яті, необхідним є лише код операції, після якого записуються дані

Наприклад, необхідно завантажити акумулятор 8-ми розрядним двійковим числом. Таке завантаження здійснюється при кожному виконанні програми. Вказану програму можна реалізувати командою, код операції якої вказує мікропроцесору завантажити в акумулятор дані довжиною 1 байт, які йдуть безпосередньо за кодом операції.

3. Пряма адресація

Тут команди можуть мати довжину, яка дорівнює 2 або 3 байти.

1-й байт – код операції

2-й байт і якщо є 3-й – для адреси.

Адреса вказує область пам’яті, в якій знаходяться дані, що піддаються обробці. Використання 2-го і 3-го байтів команди дозволяє адресуватися до будь якої з 65536 областей пам’яті.

Тільки при прямій адресації явним чином задається адреса необхідних даних.

 

Приклад. Записати вміст акумулятора в пам’ять по адресі 000Е16.

Завантаження акумулятора пряме
0016
16
1 байт
2 байт
3 байт

4. Опосередкована регістрова адресація

Реалізується командами довжиною в одне слово. Містить код операції і номер регістру, вміст якого – адреса місцезнаходження даних в пам’яті.

Ця адресація зручна при звертанні до часто використовуваних областей пам’яті і особливо в тих випадках, коли дані організовані у вигляді деякого списку або файлу (набору).

Інакше кажучи, використання опосередкованої адресації дає найбільший ефект при запису і читанні слідуючих одна за одною областей пам’яті.