![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Дескрипторы - это объекты, находящиеся в соответствующих таблицах, на которые указывают селекторы сегмента. Они представляют собой 8-байтовые блоки, содержащие атрибуты области линейных адресов, то есть сегмента. Эти атрибуты включают 32-разрядный линейный базовый адрес сегмента, 20-разрядную длину и дробность сегмента, уровень защиты, привилегии по чтению, записи и выполнению, размер операндов по умолчанию (16-или 32-разрядные) и тип сегмента. Вся информация об атрибутах дескриптора содержится в 12 битах дескриптора сегмента. Сегменты в целом имеют три поля атрибутов: бит Р присутствия, биты DPL уровня привилегий дескриптора и бит S дескриптора сегмента.
S - бит системного сегмента – определяет, является ли сегмент системным (S=0), или же сегментом программы или данных (S=1).
Дескрипторы сегментов хранятся либо в таблице GDT либо в таблице LDT, которые процессор адресует с помощью регистров GDTR или LDTR соответственно.
Дескриптор сегмента обеспечивает процессор информацией, которая нужна ему для отображения логического адреса в линейный адрес. Эти дескрипторы создаются не прикладными программами, а компиляторами, редакторами связей, загрузчиками или операционной системой. На рис. 1.7 показан общий формат дескриптора сегмента, размер его – 8 байтов.
Дескриптор сегмента имеет следующие поля: база определяет место сегмента внутри линейного 4Г байт адресного пространства. Процессор объединяет три фрагмента базового адреса для формирования одного 32-разрядного значения; граница определяет размер сегмента.
Процессор связывает две части поля границы для формирования 20-разрядного результата. Затем он интерпретирует поле границы одним из двух способов в зависимости от состояния бита дробности:
1) в единицах байтов для определения границы до 1М байт;
2) в единицах страниц по 4К байт для определения границы до 4Г байт.
При загрузке поле границы сдвигается влево на 12 бит и в младшие биты вставляются единицы.
Бит дробности (G-гранулярность) – старший бит поля атрибутов. Если установлен, граница интерпретируется в единицах по 4К байт, если сброшен – в байтах.
31 0
База сегмента 0-15 | Граница сегмента 15-0 | |||
База сегмента 24-31 | Атри-буты | Граница сегмента 19-16 | Атрибуты | База сегмента 16-23 |
Рис. 1.7. Общий формат дескриптора сегмента
Дата публикования: 2015-10-09; Прочитано: 517 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!