Косвенно-регистровая адресация. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Косвенно-регистровая адресация.



Эффективный адрес операнда находится в базовом регистре BX или индексном регистре (SI или DI):

 

Пример: mov ax, [bx]

Физический адрес определяется парой сегмент-смещение (например CS:IP – адрес следующей команды), и для каждого регистра, содержащего смещение, есть сегментный регистр, заданный по умолчанию. Некоторые сегменты разрешается принудительно переназначать, мнемоническое обозначение переназначения – «сегментный_регистр:смещение», в коде команды появляется дополнительный (первый) байт – байт замены сегмента.

 

 

Пример: mov ax, cs:[bx]

 

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

Операнд длиной байт или слово является частью команды. Операнд помещается в последние байты команды, причем младший байт следует первым (находится по меньшему адресу).

 

 


Пример: mov ax, 1234h

 

Относительная косвенно-регистровая адресация.

Эффективный адрес операнда – сумма 8- или 16-разрядного смещения и значения одного из базовых или индексных регистров. Этот метод также называют базовым, если используются регистры BX, BP или индексным, при использовании SI, DI.

 

 

Базовая адресация обеспечивает возможность работы со структурами данных, размещенными в памяти, например, с соседними ячейками памяти относительно эффективного адреса в базовом регистре.

 

Пример: mov ax, [bx+10], другая форма записи - mov ax, 10[bx]

 

Индексный метод адресации удобен при обработке массивов, когда смещение указывает стартовый адрес массива, а содержимое индексного регистра соответствует индексу массива.

 

Пример: mov ax, 0100[si], другая форма записи - mov ax, [si+0100]

 


Базовая индексная адресация.

Эффективный адрес равен сумме содержимого базового (BX или BP) и индексного (SI или DI) регистров.

 

 

Пример: mov ax, 100[bx][si], другая форма записи - mov ax, [bx+si+0100]

 

Неявная адресация.

Неявная адресация задается операцией. Например, в командах обработки строк неявно используются регистры SI, DI. В командах управления циклами неявно используется регистр CX и т.д.

 

Стековая адресация.

Стековая адресация применяется в командах работы со стеком PUSH и POP. Для этих команд адрес операнда находится в указателе стека SP и автоматически уменьшается или увеличивается на два при записи в стек или при чтении из стека. Заполнение стека происходит в направлении уменьшения адресов ячеек памяти. Стек может обмениваться данными с регистрами общего назначения и сегментными регистрами. Команды обмена данными между стеком и памятью содержат байт адресации, в котором 3-разрядное поле REG, совместно с полем КОП, идентифицирует команду.

 

Рисунок 8. Работа со стеком.

 



Поделиться:


Последнее изменение этой страницы: 2021-06-14; просмотров: 93; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.157.227 (0.005 с.)