Разделы:


Best links:

Максимальный режим работы цп

descriptor:

            dw       limit_low                      ; младшее слово предела

            dw       address_low                 ; младшее слово адреса

            db        address_hi                    ; 3-й (из четырёх) байт адреса

            db        access_rights                ; права доступа

            db        limit_hi_and_flags       ; старшая часть предела и флаги

            db        address_hi                    ; 4-й байт адреса

Байт прав доступа (40-47) имеет следующий формат:

     40: A – бит доступа (Accessed)

41-43: Тип сегмента (табл. 5.1)

     44: S – бит системного сегмента (System)

45-46: DPL – уровень привелегий (Descriptor Privelege Level )

     47: P – бит присутствия (Present) сегмента в ОЗУ

                                                                                                       Таблица 5.1

Тип

Назначение сегмента

000

Сегмент данных только для чтения

001

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

010

Сегмент стека только для чтения

011

Сегмент стека для чтения и записи

100

Сегмент кода с разрешением только выполнения

101

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

110

Подчиненный сегмент кода с разрешением выполнения

111

Подчиненный сегмент кода с разрешением выполнения и чтения из него

Тетрада флагов (52-55) G,D,X,U имеет формат:

   52: бит U – пользователь (User)

   53: бит X – зарезервирован

   54: бит D – размерность (Default size) операндов

   55: бит G – бит гранулярности (Granularity)

При адресации памяти в защищённом режиме команды ссылаются на сегменты, указывая не их адреса (как в режиме реальных адресов), а описания сегментов (их дескрипторы). Указатель на описание сегмента называется селектор. Другими словами, селектор - это номер дескриптора из таблицы дескрипторов. Адресация производится через пару регистров сегмент:смещение, причём, в качестве сегментного регистра используются обычные CS, SS, DS, ES, FS и GS (последние два появились в ЦП Intel 80386), но в них указывается не адрес сегмента, а селектор дескриптора. Селекторы нужны, по крайней мере, по трём причинам:

предыдущаяследующая