Принципы формирования физического адреса

Опубликовано в Архитектура процессора Intel

Стандартные назначения сегментов и возможности их переопределения

В процессоре Intel 8086 поддерживается простейшая модель сегментированной памяти. Использование сегментации позволяет, во-первых, сделать машинные программы инвариантными к месту их конкретной привязки (загрузки) в физической памяти, и, во-вторых, расширить объем физического адресного пространства до 1 Мбайта (220 байт) по сравнению с возможностями 16-битной адресации, которая обеспечивает адресное пространство всего = 64 Кбайта.

Физический адрес формируется как сумма двух компонент: базового адреса сегмента, который выбирается из соответствующего сегментного регистра, и внутрисегментного смещения (offset), которое определяет относительный адрес внутри сегмента. Обе компоненты физического адреса являются 16-разрядными, однако они складываются со смещением друг относительно друга, в результате чего формируется 20-разрядная сумма, представляющая собой физический адрес.

Схему формирования физического адреса можно представить в следующем упрощенном виде:

Принципы формирования физического адреса

Так как при сложении к базовому адресу сегмента приписываются 4 младших нуля (справа), то в физической памяти автоматически происходит выравнивание сегментов па 16-байтную границу, которую принято называть границей параграфа.

Тип используемого внутрисегментного смещения (offset) определяется видом обращения к памяти. Собственно говоря, вид обращения к памяти определяет также и используемый сегмент и, соответственно, сегментный регистр, участвующий в формировании физического адреса.

Сегментные регистры и внутрисегментные смещения, используемые в соответствии с их стандартным назначением (по умолчанию) в зависимости от вида обращения к памяти, представлены в таблице:

Принципы формирования физического адреса

Для переопределения сегмента, отличного от стандартного назначения, используется префикс замены сегмента. Он предшествует команде и имеет стандартную структуру .

Поле SR определяет адрес используемого сегментного регистра.