Разделы:
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), но в них указывается не адрес сегмента, а селектор дескриптора. Селекторы нужны, по крайней мере, по трём причинам:
предыдущаяследующая© Copyright, 2009.
Для связи: info@dgs-srl.com.