Иллюстрированный самоучитель по Tirbo Pascal



              

Адресация


В архитектуре МП 8086/8088 адрес любого байта задается двумя 16-битовыми словами - сегментом и смещением. При формировании 20-разрядного полного адреса, необходимого для адресации в пределах 1 Мбайт, сегмент сдвигается влево на 4 разряда (умножается на 16) и складывается со смещением. Поскольку емкость 16-разрядного смещения составляет 65536 значений, в пределах одного сегмента можно адресовать до 64 Кбайт.

Архитектура МП позволяет использовать семь различных способов адресации.

Регистровая 

Извлекает операнд из регистра или помещает его в регистр. Примеры:

mov ах,bх {Извлекаем из ВХ и помещаем в АХ} 

add cx,ax {Содержимое АХ прибавляем к СХ}

push ex {Заталкиваем в стек содержимое СХ}

Непосредственная

Операнд (8- или 16-разрядная константа) содержится непосредственно в теле команды. Примеры:

mov ax,100 {Загружаем в АХ значение 100}

add ax,5 {К содержимому АХ прибавляем 5} 

mov cx,$FFFF {Помещаем в СХ значение 65535}

Прямая

Смещение операнда задается в теле программы и складывается с регистром DS; например:

var

X: Word; В: Byte;

.......

mov ах,Х {Пересылаем значение переменной X регистр АХ} 

add ah,В {К содержимому регистра АН прибавляем значение переменной В}

mov X,ax {Пересылаем содержимое регистра АХ, в область памяти переменной X}

Косвенная регистровая

Исполнительный адрес операнда (точнее, его смещение) содержится в одном из регистров ВХ, ВР, SI или DI. Для указания косвенной адресации этот регистр должен заключаться в квадратные скобки, например:

mov ax,[bx] {Содержимое 16-разрядного слова, хранящегося в памяти по адресу DS:BX,пересылаем в регистр АХ};

Каждый из регистров BX...DI по умолчанию работает со своим сегментным регистром:

DS:BX, SS:BP, DS:SI, ES:DI

Допускается явное указание сегментного регистра, если он отличается от умалчиваемого, например:

mov ax,es:[bx]

Адресация по базе 

Базовый регистр ВХ (или ВР) содержит базу (адрес начала некоторого фрагмента памяти), относительно которой ассемблер вычисляет смещение, например:




Содержание  Назад  Вперед