Читайте также: |
|
2.31. СЕГМЕНТАЦІЯ ПАМ’ЯТІ В ЗАХИЩЕНОМУ РЕЖИМІ. РОЗРОБКА ДЕСКРИПТОРІВ СЕГМЕНТІВ. ФОРМУВАННЯ ЛІНІЙНОЇ АДРЕСИ ПРИ ЗВЕРТАННІ ДО ПАМ’ЯТІ.
Сегмент характеризуется такими параметрами:
-размер;
-базовый адрес;
-права доступа к сегменту.
Эти параметры формируются в виде 8-байтовой структуры, называемой дескриптором сегмента.
Структура дескриптора сегмента:
Баз. адрес (31-24) | G | D/B | X | Граница (19-16) | Байт доступа | Базовый адрес (23-0) | Граница (15-0) | ||||
Граница сегмента = Размер сегмента-1.
Базовый адрес – это адрес, по которому сегмент находится в банке памяти.
X: бит программно доступен для пользователя.
D/B (Default/Big): D=0 – 16-разрядные данные, D=1 – 32-разрядные данные;
B=0 – размер стека = 64 Кбайт, B=1 – размер стека = 4 Гбайт.
G (Granularity): G= 0 – размер сегмента выражен в байтах, G = 1 – в 4-Кбайтовых страницах.
Байты доступа:
Сегмента кода | Сегмента данных | Системного сегмента | ||||||||||||||||||||||||||||||||||||||||||
|
|
| ||||||||||||||||||||||||||||||||||||||||||
P(Present) P=1 – сегмент в памяти, P=0 – сегмент на диске | P | P | ||||||||||||||||||||||||||||||||||||||||||
DPL–уровень защищенности сегмента 0 – высший, 3 - низший | DPL | DPL | ||||||||||||||||||||||||||||||||||||||||||
S(System) S=1–несистемный сегмент, S=0 – системный сегмент | S=1 | S=0 | ||||||||||||||||||||||||||||||||||||||||||
E(Execute) E=1–сегмент кода,E=0- сегмент стека | E=0 | TYPE=1100 – шлюз; TYPE=1110 – обработчик прерывания; TYPE=1111 – обработчик ловушки | ||||||||||||||||||||||||||||||||||||||||||
С(Conform) – бит подчинения (используется для шлюзов) | ED(Expand Down) ED=0 – сегмент данных, ED=1 – сегмент стека | |||||||||||||||||||||||||||||||||||||||||||
R(Read) R=1 – сегмент можно читать, R=0 – нельзя читать | W(Write) W=1 – писать можно, W=0 – писать нельзя | |||||||||||||||||||||||||||||||||||||||||||
A(Access) устанавливается аппаратно при доступе к сегменту | A |
При программном описании дескриптор сегмента представляется в виде такой структуры:
t_descr = record
lim_l, {граница 15-0}
base_l: word; {база 15-0}
base_h, {база 23-16}
access, {байт доступа}
lim_h, {граница 23-16}
base_hh: byte; {база 31-24}
end;
gdt: array [0..n] of t_descr; {таблица GDT}
Схема формирования линейного адреса:
Дата добавления: 2015-11-16; просмотров: 59 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Тенденции развития микропроцессорная техника. Структура и режимы функционирования современных микропроцессоров | | | Обработка прерываний в защищенном режиме. Виды исключений. Формирование дескриптивный таблице прерываний |