И способы адресации


Программная модель семейства МП i8086/8088 приведена на рис.4.10. Модель показывает те ресурсы МП, которыми программист может распоряжаться при разработке программ. Программная модель МП семейства i8086/8088 является основой программных моделей современных процессоров.

Команды МП семейства i8086/8088 реализуют весьма разнообразные способы адресации, что упрощает организацию и использование сложных структур данных, а также расширяет возможности отдельных команд и повышает гибкость их применения.

Регистровая адресация. При этом способе адресации операнд находится в одном из 8- или 16-битовых регистрах МП. Команды, оперирующие содержимым регистров, являются наиболее короткими и выполняются за наименьшее время, так как не требуют вычисления исполнительного адреса ЕА и выполнения цикла шины для обращения к памяти.

 


Непосредственная адресация. Непосредственными операндами являются константы длиной 8 или 16 бит, которые размещаются в последних байтах команды (младший байт следует первым). Доступ к таким операндам в МП осуществляется очень быстро, поскольку во время выполнения команды они находятся во внутренней очереди команд.

Далее рассмотрим способы адресации операндов, хранящихся в оперативной памяти. Как уже было отмечено выше, при обращении к оперативной памяти вычисляется исполнительный (эффективный) адрес ЕА, который в общем случае является суммой, включающей следующие компоненты:

Смещение (Disp) – 8- или 16-битовое знаковое целое, включенное в команду;

База (Base) – содержимое базового регистра, которое обычно используется для указания на начало некоторого массива;

Индекс (Index) – содержимое индексного регистра, которое обычно используется для выбора элемента массива.

Исполнительный адрес ЕА в общем случае вычисляется по формуле

EA = Disp + Base + Index.

 

Прямая адресация. Этот способ является простейшим способом адресации ячеек оперативной памяти, в которых хранятся операнды. При прямой адресации исполнительным адресом ЕА является содержимое байтов смещения Disp команды.

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

Другая разновидность прямой адресации применяется для указания портов ввода-вывода в двухбайтовых командах IN и OUT, второй байт которых содержит адрес (номер) порта.

Косвенная регистровая адресация. В командах преобразования данных исполнительный адрес ЕА равен содержимому одного из регистров SI, DI, BX и BP. Данный способ адресации позволяет вычислять адреса во время выполнения программ, что часто требуется, например для обращения к различным элементам таблиц данных. Разновидностью этого способа является косвенная адресация портов ввода-вывода с помощью содержимого регистра DX в однобайтовых командах IN и OUT.

Базовая адресация. Исполнительный адрес ЕА операнда вычисляется путем суммирования содержимого базовых регистров ВХ или ВР и смещения disp. При использовании ВХ происходит обращение к операнду в текущем сегменте данных, а при использовании ВР – в текущем сегменте стека. Смещения, содержащиеся в команде, могут иметь длину 8 или 16 бит и интерпретируются как знаковые целые, представленные в дополнительном коде.

Например: MOV AX,[BP+4] или MOV AX,[BP] + 4.

 

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

Индексная адресация. Значение исполнительного адреса ЕА операнда вычисляется как сумма смещения disp, находящегося в команде, и содержимого индексного регистра SI или DI. Данный способ обычно применяется для обращения к различным элементам одномерного массива (таблицы) данных, когда смещение определяет известный при ассемблировании начальный адрес массива, а индексный регистр, содержимое которого может модифицироваться при выполнении программы, определяет элемент массива. По существу индексная адресация в МП i8680/8088 аналогична базовой.

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

Относительная адресация.В МП i8086/8088 реализуется только по отношению к указателю команд IP, так что сегментное смещение вычисляется как сумма смещения disp, находящегося в команде, и текущего значения IP. При этом значение IP равно адресу байта, следующего за рассматриваемой командой, которая в это время выполняется микропроцессором. В МП i8086/8088 относительная адресация не используется в командах, оперирующими данными, а применяется только в командах условных и безусловных переходов, вызовов подпрограмм и управления циклами.

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


Обобщая программную модель и способы адресации семейства МП i8086/8088, можно получить более подробную схему вычисления физического адреса памяти. Эта схема изображена на рис.4.11. и интерпретирует различные варианты вычисления физического адреса памяти.



Дата добавления: 2021-12-14; просмотров: 285;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.