Jump to content

Дескриптор сегмента

(Перенаправлено из дескрипторов сегментов )

При адресации памяти для Intel x86 компьютерных архитектур дескрипторы сегментов являются частью блока сегментации, используемого для преобразования логического адреса в линейный адрес. Дескрипторы сегментов описывают сегмент памяти, указанный в логическом адресе. [1] Дескриптор сегмента (длиной 8 байт в версии 80286 и новее) содержит следующие поля: [2]

  1. Базовый адрес сегмента
  2. Предел сегмента, определяющий размер сегмента.
  3. Байт прав доступа, содержащий информацию о механизме защиты.
  4. Биты управления

Структура

[ редактировать ]

Дескриптор сегмента x86 и x86-64 имеет следующий вид: [3]

Где означают поля:

Базовый адрес
Начальный адрес памяти сегмента. Его длина составляет 32 бита, и он создается из битов нижней части с 16 по 31 и битов верхней части с 0 по 7, за которыми следуют биты с 24 по 31.
Ограничение сегмента
Его длина составляет 20 бит, и он состоит из битов младшей части от 0 до 15 и битов старшей части от 16 до 19. Он определяет адрес последних доступных данных. Длина на единицу больше значения, хранящегося здесь. Как именно это следует интерпретировать, зависит от бита детализации дескриптора сегмента.
G=Детализация
Если этот флажок установлен, ограничение выражается в байтах, максимум 2. 20 байты. Если установлено, ограничение выражается в страницах по 4096 байт, максимум 2 32 байты.
Д/Б
D = Размер операнда по умолчанию: Если флажок снят, это 16-битный сегмент кода; если установлено, это 32-битный сегмент.
B = Большой: Если установлено, максимальный размер смещения для сегмента данных увеличивается до 32-битного 0xffffffff. В противном случае это 16-битный максимум 0x0000ffff. По сути то же значение, что и «D».
L=длинный
Если установлено, это 64-битный сегмент (и D должен быть нулевым), и код в этом сегменте использует 64-битную кодировку инструкций. «L» не может быть установлен одновременно с «D», также известным как «B». (Бит 21 на изображении)
АВЛ=Доступно
Для программного использования, не используемого аппаратным обеспечением (бит 20 на изображении с меткой A)
P=Присутствует
Если этот параметр отключен, при любой ссылке на этот сегмент генерируется исключение «сегмент отсутствует».
DPL = уровень привилегий дескриптора
Уровень привилегий (кольцо), необходимый для доступа к этому дескриптору
S=Системный сегмент
Если флажок установлен, это системный сегмент, если 1, это сегмент кода/данных.
Тип
Если бит 11 установлен, это дескриптор сегмента кода. Если флажок снят, это дескриптор сегмента данных/стека, в котором «D» заменено на «B», «C» заменено на «E» и «R» заменено на «W». Фактически это частный случай поля 2-битного типа, где предыдущий бит 12, очищенный как «0», относится к большему количеству внутренних системных дескрипторов, для LDT, LSS и вентилей.
C = Соответствует
Код в этом сегменте может вызываться с менее привилегированных уровней.
E=Развернуть-Вниз
Если флажок установлен, сегмент расширяется от базового адреса до базового+лимита. Если установлено, оно расширяется от максимального смещения до предельного — поведение, обычно используемое для стеков.
R = читаемый
Если этот параметр отключен, сегмент может быть выполнен, но не прочитан.
W = возможность записи
Если этот параметр отключен, сегмент данных можно читать, но нельзя записывать.
A = Доступ
Этот бит устанавливается в 1 аппаратно при доступе к сегменту и очищается программно.

См. также

[ редактировать ]
  1. ^ Бовет, Д.П., и Чезати, М. (2000). Понимание ядра Linux (первое издание) . О'Рейли энд Ассошиэйтс, Инк.
  2. ^ Табак, Дэниел (1995). Усовершенствованные микропроцессоры . Издательство Макгроу Хилл. п. 149 . ISBN  9780070628434 .
  3. ^ Руководство программиста по архитектуре AMD64, том 2: Системное программирование (PDF) (технический отчет). 2013. с. 80. Архивировано из оригинала (PDF) 18 февраля 2018 г.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5a161c0bb86a035d79e46464afe5bf33__1690263480
URL1:https://arc.ask3.ru/arc/aa/5a/33/5a161c0bb86a035d79e46464afe5bf33.html
Заголовок, (Title) документа по адресу, URL1:
Segment descriptor - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)