Сегментация памяти в защищенном режиме. Разработка дескрипторов сегментов формирование линейной адреса при обращении к памяти
Сегмент характеризуется такими параметрами:
-размер;
-базовый адрес;
-права доступа к сегменту.
Эти параметры формируются в виде 8-байтовой структуры, называемой дескриптором сегмента.
Структура дескриптора сегмента:
7
6
5
4
3
2
1
0
Баз. адрес (31-24)
G
D/B
0
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-Кбайтовых страницах.
Байты доступа:
Сегмента кода
Сегмента данных
Системного сегмента
7
6
5
4
3
2
1
0
P
DPL
S=1
E=1
C
R
A
7
6
5
4
3
2
1
0
P
DPL
S=1
E=0
ED
W
A
7
6
5
4
3
2
1
0
P
DPL
S=0
TYPE
P(Present) P=1 – сегмент в памяти, P=0 – сегмент на диске