Вопрос 44 Основные способы адресации 16 разрядного процессора I8086

Способ определения операнда называется режимом адресации. Рассмотрим наиболее типичные режимы адресации микропроцессора 8086. Они разделяются на два класса — режимы адресации данных и режимы адресации переходов. На Рис. 7.14 графически показаны определения операндов для различных режимов адресации данных. Различают следующие режимы адресации.

Непосредственный. Данное длиной 8 или 16 бит является частью команды.

Прямой. 16-битный эффективный адрес данного является частью команды.

Регистровый. Данное содержится в определяемом командой регистре. 16-битный операнд может находиться в регистрах АХ, ВХ, СХ, DX, SI, DI, SP или ВР, а 8-битный - в регистрах AL, АН, BL, ВН, CL, CH, DL или DH.

Регистровый косвенный. Эффективный адрес данного находится в базовом регистре ВХ или индексном регистре, определяемых командой:

Вопрос 44 Основные способы адресации 16 разрядного процессора I8086 - student2.ru

Регистровый относительный. Эффективный адрес равен сумме 8- или 16-битного смещения и содержимого базового или индексного регистров:

Вопрос 44 Основные способы адресации 16 разрядного процессора I8086 - student2.ru

Базовый индексный. Эффективный адрес равен сумме содержимого базового и индексного регистров, определяемых командой:

Вопрос 44 Основные способы адресации 16 разрядного процессора I8086 - student2.ru

Относительный базовый индексный. Эффективный адрес равен сумме 8-или 16-битного смещения и базово-индексного адреса:

Вопрос 44 Основные способы адресации 16 разрядного процессора I8086 - student2.ru

Полезная инфа:
Внутрисегментный прямой. Эффективный адрес перехода равен сумме 8-или 16-битного смещения и текущего содержимого IP. Когда смещение имеет длину 8 бит, этот режим называется коротким переходом. Внутрисегментную прямую адресацию в большинстве книг называют относительной адресацией, так как смещение вычисляется "относительно" IP. Этот режим допустим в условных и безусловных переходах, но в команде условного перехода может быть только смещение длиной 8 бит.

Внутрисегментный косвенный. Эффективный адрес перехода есть содержимое регистра или ячейки памяти, которые указываются в любом режиме (кроме непосредственного) адресации данных. Содержимое IP заменяется эффективным адресом перехода. Данный режим допустим только в командах безусловного перехода.

Межсегментный прямой. Заменяет содержимое IP одной частью команды, а содержимое CS — другой частью команды. Назначение данного режима адресации — обеспечить переход из одного сегмента кода в другой.

Межсегментный косвенный. Заменяет содержимое IP и CS содержимым двух смежных слов из памяти, которые определяются в любом режиме адресации данных кроме непосредственного и регистрового.

Отметим, что физический адрес перехода равен сумме нового содержимого IP и содержимого CS, умноженного на 16ю- Межсегментный переход может быть только безусловным.

Для иллюстрации косвенного перехода с некоторыми режимами адресации данных предположим, что (ВХ) = 1256, (SI) = 528F, смещение = 20А1. Тогда при прямой адресации эффективный адрес перехода равен 20А1 + (DS) х 1610. При регистровой косвенной адресации (с участием регистра ВХ) эффективный адрес перехода 1256 + 20А1 + (DS) х 1610- Наконец, в базовой индексной адресации (с участием регистров ВХ и SI) эффективный адрес перехода 1256 + 528F + (DS) х 1610.

Наши рекомендации