Базовый адрес - сегмент - Большая Энциклопедия Нефти и Газа, статья, страница 2
Чудеса современной технологии включают в себя изобретение пивной банки, которая, будучи выброшенной, пролежит в земле вечно, и дорогого автомобиля, который при надлежащей эксплуатации заржавеет через два-три года. Законы Мерфи (еще...)

Базовый адрес - сегмент

Cтраница 2


Программно-доступными функциональными частями МП являются регистры общего назначения ( для хранения операндов и результатов выполнения команд), сегментные ( для хранения базовых адресов текущих сегментов памяти), адреса команд и признаков. Регистры общего назначения разбиты на две группы по четыре регистра в каждой: данных, индексные и указатели. Старшие и младшие восемь разрядов группы регистров данных могут быть адресованы раздельно. В этом случае они образуют набор из восьми 8-разрядных регистров.  [16]

17 Адресация памяти в защищенном режиме процессора Intel 80286. [17]

Таким образом, на сумматор, вычисляющий физический адрес памяти, подается не содержимое сегментного регистра, как в предыдущем случае, а базовый адрес сегмента из таблицы дескрипторов.  [18]

Наблюдательный читатель, возможно, уже заметил, что одна из основных сложностей при дескрипторной адресации - это разрешение конфликта между желанием, с одной стороны, поместить базовый адрес сегмента непосредственно в дескриптор и, с другой стороны, желанием сделать сегменты перемещаемыми. Когда необходимо переместить часть структуры во время исполнения программы ( как, например, в случае, когда сегменты повторно перемещаются в основную память в системах с виртуальной памятью), должна быть найдена и обновлена каждая ссылка на перемещаемый сегмент ( объект), чтобы отразить новое местоположение объекта.  [19]

20 Пример использования команды XLAT. [20]

Команды LDS и LES используются, в основном, при обращении к данным, находящимся вне текущих сегментов DS или ES, так, что возникает необходимость изменить базовый адрес сегмента. Пара 16-разрядных адресов - база сегмента и смещение в сегменте, называемая указателем, предварительно загружается в память. Значение смещения содержится в двух первых байтах указателя, а базовый адрес сегмента - в третьем и четвертом байтах. По команде LDS ( или LES) происходит обращение к указателю и осуществляется загрузка регистра DS ( или ES) базовым адресом, а смещение пересылается в регистр, указанный полем reg постбайта команды.  [21]

22 Нижний уровень механизма доступа к целевому объекту Т. Дескрипторы доступа AD1 и AD2 имеют различные права доступа к Т. Оба дескриптора доступа указывают на один дескриптор объекта, находящийся в таблице дескрипторов объектов. [22]

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

Затем сопроцессор считает адрес блока конфигурации системы, содержащийся в байтах с адресами FFFF8H - FFFFBH. Значения базового адреса сегмента блока конфигурации и смещения преобразуются в 20-разрядный физический адрес, который записывается во внутренний регистр. Этот байт задает режим запроса / предоставления ( разряд R) и физическую ширину шины ввода-вывода ( разряд I): при 1 0 -шина ввода-вывода 8-разрядная, при 1 1 - шина 16-разрядная. Далее, после считывания байта SOC, сопроцессор читает значения базового адреса сегмента блока управления каналами и смещения, которые преобразуются в 20-разрядный физический адрес и помещаются в другой внутренний регистр. Этот регистр недоступен для программ каналов, так что блок управления канала не может перемещаться во время работы без повторной инициализации СП.  [24]

Область памяти с дескрипторами называется таблицей дескрипторов. Каждый дескриптор сегмента содержит базовый адрес сегмента, размер сегмента ( от 1 до 64 Кбайт) и его атрибуты. Базовый адрес сегмента имеет разрядность 24 бит, что обеспечивает адресацию 16 Мбайт физической памяти.  [25]

Каждый элемент п таблицы содержит два слова, определяющие начальный логический адрес подпрограммы. Слово с большим адресом содержит базовый адрес сегмента, а слово с меньшим адресом - смещение подпрограммы от начала кодового сегмента.  [26]

27 Регистр признаков EFLAGS процессора 80386. [27]

В защищенном режиме в регистры дескрипторов загружается 32-битный базовый адрес сегмента, 32-битный лимит и атрибуты сегментов.  [28]

29 Преобразование пары ( селектор, смещение в линейный адрес. [29]

Если разбиение на страницы блокировано ( это определяется по биту в регистре глобального управления), линейный адрес интерпретируется как физический адрес и отправляется в память для чтения или записи. Таким образом, при блокировке разбиения на страницы мы имеем чистую схему сегментации, где каждый базовый адрес сегмента дан в его дескрипторе. Допускается перекрытие сегментов, поскольку было бы слишком утомительно тратить много времени на проверку, чтобы все сегменты были непересекающимися.  [30]



Страницы:      1    2    3