|
|
|
|
|
|
ПРИЛОЖЕНИЕ А |
||||
|
|
Дополнительные сведения |
|
|
|
|
||||
|
|
|
|
|
|
|
|
Таблица 1 |
||
|
Назначение полей дескриптора сегмента |
|
|
|
|
|||||
|
|
|
|
|
|
|
||||
Номер |
Количест- |
Символическое |
|
Назначение и содержание полей |
|
|
||||
байта |
во бит |
обозначение |
|
|
в дескрипторе |
|
|
|
||
|
в поле |
дескриптора |
|
|
|
|
|
|
|
|
0...1 |
16 |
limit_1 |
Младшие |
биты 0...15 |
20-разрядного |
|
||||
|
|
|
поля предела сегмента, который опре- |
|
||||||
|
|
|
деляет размер сегмента в едини, |
|
||||||
|
|
|
определяемых битом гранулярности g |
|
||||||
2...4 |
23 |
base 1 |
Биты 0...23 32-разрядной базы сегмен- |
|
||||||
|
|
|
та, |
которая |
определяет |
значение |
-ли |
|||
|
|
|
нейного адреса начала сегмента в па- |
|||||||
|
|
|
мяти |
|
|
|
|
|
|
|
5 |
8 |
AR |
Байт, поля которого определяют права |
|
||||||
|
|
|
доступа к сегменту(табл. 2 приложе- |
|||||||
|
|
|
ния А) |
|
|
|
|
|
|
|
6 |
0..3 |
limit_2 |
Старшие |
биты 16...19 |
20-разрядного |
|
||||
|
|
|
предела сегмента |
|
|
|
|
|||
6 |
1 |
U |
Бит пользователя (User). He имеет спе- |
|
||||||
|
|
|
циального назначения и может исполь- |
|||||||
|
|
|
зоваться по усмотрению программиста |
|||||||
|
|
|
|
|
|
|
|
|||
6 |
1 |
– |
0 – бит не используется |
|
|
|
|
|||
6 |
1 |
D |
Бит разрядности операндов и адресов: |
|
||||||
|
|
|
0 – в программе используются 16-раз- |
|||||||
|
|
|
рядные операнды и режимы 16-разряд- |
|||||||
|
|
|
ной |
адресации; 1 – в |
программе |
ис- |
||||
|
|
|
пользуются 32-разрядные |
операнды |
||||||
|
|
|
режимы 32-разрядной адресации |
|
|
|||||
6 |
1 |
G |
Бит гранулярности: 0 – размер сегмен- |
|
||||||
|
|
|
та равен значению в поле limit в бай- |
|||||||
|
|
|
тах; 1 – размер сегмента |
равен значе- |
||||||
|
|
|
нию в поле limit в страницах |
|
|
|||||
7 |
8 |
base 2 |
Биты 24...31 |
32-разрядной базы |
сег- |
|
||||
|
|
|
мента |
|
|
|
|
|
|
80
|
Байт AR дескриптора сегмента |
|
|
Таблица 2 |
|||||||
|
|
|
|
|
|
||||||
Номер бита |
Символическое |
|
|
Назначение и содержимое |
|
|
|
||||
в байте AR |
обозначение |
|
|
|
|
|
|
|
|
|
|
0 |
А |
Бит доступа (Accessed) к сегменту. Устанавли- |
|
||||||||
|
|
вается аппаратно при обращении к сегменту |
|
|
|||||||
1 |
R |
Для сегмента кода – это бит доступа по чтению |
|
||||||||
|
(Readable); определяет, возможно ли чтение из |
|
|||||||||
|
|
сегмента кода при осуществлении замены пре- |
|
||||||||
|
|
фикса сегмента: |
|
|
|
|
|
|
|||
|
|
0 |
– чтение из сегмента запрещено; |
|
|
|
|||||
|
W |
1 |
– чтение из сегмента разрешено. |
|
|
|
|||||
|
Для сегментов данных — это бит записи: |
|
|
||||||||
|
|
0 – модификация данных в сегменте запрещена; |
|
||||||||
|
|
1 |
– модификация данных в сегменте разрешена |
|
|||||||
2 |
С |
Для |
сегментов |
кода |
— это |
бит |
подчинен |
|
|||
|
|
(Conforming): |
|
|
|
|
|
|
|
||
|
|
1 |
— подчиненный сегмент кода; |
|
|
|
|
||||
|
|
0 |
— обычный сегмент кода. |
|
|
|
|
|
|||
|
ED |
Для |
многозадачного |
режима |
определяет |
осо- |
|||||
|
|
бенности смены значения текущего ур |
|||||||||
|
|
привилегий. Для сегментов данных — это бит |
|||||||||
|
|
расширения вниз (Expand Down); служит для |
|||||||||
|
|
различения сегментов стека и данных, а также |
|||||||||
|
|
определяет трактовку поля limit: |
|
|
|
|
|||||
|
|
0 |
– сегмент данных; |
|
|
|
|
|
|
||
|
|
1 |
– сегмент стека. |
|
|
|
|
|
|
||
3 |
I |
Бит предназначения (Intending): |
|
|
|
|
|||||
|
|
0 |
— сегмент данных или стека; |
|
|
|
|
||||
|
|
1 |
– сегмент кода. |
|
|
|
|
|
|
||
4 |
S |
Если S=1 — то это бит сегмента (Segment). Для |
|
||||||||
|
|
любых сегментов в памяти равен 1. Назначение |
|||||||||
|
|
и порядок использования сегмента уточняется |
|||||||||
|
|
битами С и R; если – 0 – то это бит системный |
|||||||||
|
|
(System). Такое состояние |
битаS |
говорит |
о |
||||||
|
|
том, что данный дескриптор описывает специ- |
|||||||||
|
|
альный системный объект, который может и не |
|||||||||
|
|
быть сегментом в памяти |
|
|
|
|
|
||||
5...6 |
dpl |
Поле |
уровня |
привилегий |
сегмента(Descriptor |
|
|||||
|
|
Privilege Level). Содержит численное значение |
|||||||||
|
|
в |
диапазоне |
от0 до 3 привилегированности |
|||||||
|
|
сегмента, описываемого данным дескриптором |
|||||||||
7 |
Р |
Бит присутствия (Present): |
|
|
|
|
|
||||
|
|
0 |
– сегмента нет в оперативной памяти в дан- |
||||||||
|
|
ный момент; |
|
|
|
|
|
|
|
||
|
|
1 – сегмент находится в оперативной памяти в |
|||||||||
|
|
данный момент. |
|
|
|
|
|
|
81
Таблица 3 Распределение прерываний в защищенном, и реальном режимах
Номер |
Реальный режим |
Защищенный режим |
Тип |
Код ошибки |
||||||
Вектора |
|
|
|
|
|
|
|
|
прерывания |
|
0 |
Деление на ноль |
Деление на ноль |
Ошибка |
Не формируется |
||||||
1 |
Пошаговой |
работы |
Пошаговой |
|
работыОшибка |
Не формируется |
||||
|
|
|
|
|
|
|
|
ловушка |
|
|
2 |
Сигнал на входеNMI |
Сигнал на входеNMI |
Ловушка |
Не формируется |
||||||
3 |
Контрольная точка |
Контрольная точка |
Ловушка |
Не формируется |
||||||
4 |
Переполнение |
|
Переполнение |
|
Ловушка |
Не формируется |
||||
5 |
BIOS: печать |
экра- |
Нарушение |
|
грани Ошибка |
Не формируется |
||||
|
на; нарушение |
гра- |
массива |
|
|
|
|
|
|
|
|
ниц массива |
|
|
|
|
|
|
|
|
|
6 |
Недопустимая |
- |
коНедопустимая |
-коОшибка |
Не формируется |
|||||
|
манда |
|
|
манда |
|
|
|
|
|
|
7 |
Обращение |
к |
отсут- |
Обращение к отсутОшибка |
Не формируется |
|||||
|
ствующему |
|
|
ствующему |
|
сопро- |
|
|
||
|
сопроцессору |
|
цессору |
|
|
|
|
|
|
|
8 |
Микросхема |
тайме- |
Двойная ошибка |
Авария |
Формируется |
|||||
|
ра/двойная ошибка |
|
|
|
|
|
|
(всегда 0) |
||
9 |
Клавиатура |
|
|
Не используется |
- |
|
Формируется |
|||
10 (0Ah) |
Сигнал |
на |
ли |
Ошибочный TSS |
Ошибка |
Формируется |
||||
|
IRQ_2 |
|
|
|
|
|
|
|
|
|
11 (OBh) |
Сигнал |
на |
ли |
Отсутствие |
сегменОшибка |
Формируется |
||||
|
IRQ_3 |
|
|
та |
|
|
|
|
|
|
12 (0Сh) |
Сигнал |
на |
ли |
Выход |
за |
|
предел Ошибка |
Формируется |
||
|
IRQ_4/выход |
|
стека |
или |
|
отсутст- |
|
|
||
|
пределы стека |
|
вие стека |
|
|
|
|
|
||
13 (0Dh) |
Сигнал |
на |
ли |
Нарушение |
|
обще Ошибка |
Формируется |
|||
|
IRQ_5/нарушение |
защиты |
|
|
|
|
|
|
||
|
общей защиты |
|
|
|
|
|
|
|
|
|
14 (0Eh) |
Контроллер |
|
НГМДОтсутствие |
страниОшибка |
Формируется |
|||||
|
сигнал на линии IRQ-6 |
цы памяти |
|
|
|
|
|
|||
15 |
Сигнал |
на |
ли Не используется |
|
— |
— |
||||
(0Fh) |
IRQ_7 |
|
|
|
|
|
|
|
|
|
16 (10h) |
BIOS: функции ви- |
Ошибка |
сопроцесОшибка |
Не формируется |
||||||
|
деосистемы/ ошибка |
сора |
|
|
|
|
|
|
||
|
сопроцессора |
|
|
|
|
|
|
|
|
|
17(llh) |
Используется для преОшибка |
выравниваОшибка |
Формируется |
|||||||
|
рываний BIOS и DOS |
ния |
|
|
|
|
|
(всегда 0) |
||
18-31 |
Используется для преЗарезервировано |
|
— |
— |
||||||
(12h-19h) |
рываний BIOS и DOS |
|
|
|
|
|
|
|
||
32-255 |
Используется |
д Аппаратные |
|
прерыЛовушка |
Не формируется |
|||||
20h-0ffh) |
прерываний BIOS и вания; |
прерывания, |
|
|
|
|||||
|
DOS |
|
|
определяемые |
|
поль- |
|
|
|
|
|
|
|
|
зователем и ОС |
|
|
|
82