Page 80 - 149
P. 80
завантажує вміст комірки памяті, адресованої з ВХ (рисунок 4.36).
Рисунок 4.37- Адресація по базі Рисунок 4.38-Пряма адресація
з індексуванням
Адресація по базі
При адресації по базі асемблер вираховує виконавчу адресу
сумуванням зміщення з вмістом регістрів ВХ або ВР. Наприклад, команда
MOV AX , [BX] +4
завантажує регістр АХ даними за схемою, приведеною на рисунку 4.36.
Асемблер дозволяє вказувати адресований по базі операнд такими способами:
MOV AX, [BP]+4
MOV AX, 4 [BP]
MOV AX, [BP+4].
Ці записи є еквівалентними.
Пряма адресація з індексуванням
При прямій адресації з індексуванням виконавча адреса вираховується
як сума зміщення та індексного регістру ( DI або SI).
Наприклад, якщо мітка B_TABLE - є міткою в таблиці слів, то для
завантаження в регістр АХ її третього елемента треба виконати таку
послідовність команд:
MOV DI, 4
MOV AХ , TABLE [DI].
Алгоритм роботи команди поданий на рисунку 4.37. Таким чином цей
тип адресації корисний при роботі з одномірними таблицями.
Адресація по базі з індексуванням
При адресації по базі з індексуванням виконавча адреса вираховується
як сума значення базового регістра, індексного регістра і, можливо, зміщення.
Даний режим адресації є доцільним при адресації двомірних масивів, коли
базовий регістр вказує на початкову адресу масиву, а значення зміщення та
індексного регістра є відповідно зміщенням по стрічках і стовпчиках.
Наприклад, нехай ЕОМ слідкує за шістьма запобіжними клапанами на
хімічному підприємстві. Вона зчитує їх стан кожні півгодини і запамятовує в
комірки памяті. За тиждень ці зчитування утворюють масив, який складається
81