ВУЗ:
Составители:
75
• Virtual-8086 Mode (VM, 17 бит) – Включает/выключает режим V86 в
защищенном режиме.
• Resume Flag (RF, 16 бит) – Флаг возобновления исполнения при отлад-
ке.
• Nested Task (NT, 14 бит) – Флаг вложенной задачи. Устанавливается,
когда текущая задача связана с прерванной задачей, очищается, если
такой связи нет.
• I/O Privilege Level (IOPL, 12-13 биты) – определяет уровень привилегий
ввода/вывода для текущей задачи.
Сегментные регистры CS, SS, DS, ES, как и
в процессорах 8086/8088,
имеют разрядность 16 бит. К ним добавлены регистры FS и GS – дополни-
тельные сегментные регистры данных.
В реальном режиме, в котором процессор находится сразу после вклю-
чения питания или сброса, сегментные регистры определяют 64Кб сегмен-
ты, как и в 16-разрядных процессорах, а в защищенном режиме содержат
указатели (т.н. селекторы) на
описатели сегментов (64-разрядные дескрип-
торы), находящиеся в памяти в виде таблиц.
Дескриптор, помимо базового адреса, содержит предельный размер
сегмента и атрибуты сегмента (права доступа). Дескрипторы являются ос-
новой защиты и мультизадачности. В защищенном режиме сегменты могут
начинаться с любого линейного адреса и иметь любой предел вплоть до
4Гбайт. Существуют две
обязательные дескрипторные таблицы - глобаль-
ная (GDT) и дескрипторная таблица прерывания (IDT), а также множество
(до 8192) локальных дескрипторных таблиц (LDT), из которых в один мо-
мент времени процессору доступна только одна. Дескрипторы сегментов
могут находиться в GDT или LDT. Расположение дескрипторных таблиц
определяется регистрами процессора GDTR (Global Descriptor Table Regis-
ter), IDTR (Interrupt Descriptor Table Register), LDTR (Local Descriptor Table
Register). Регистры GDTR и IDTR - 6-байтные, они содержат 32 бита ли-
нейного базового адреса
дескрипторной таблицы и 16 бит предела табли-
цы. Программно доступная часть регистра LDTR - 16 бит, которые явля-
ются селектором LDT. Дескрипторы LDT находятся в GDT. Однако чтобы
не обращаться каждый раз к GDT, в процессоре имеется теневая (про-
граммно недоступная) часть регистра LDTR, в которую процессор поме-
щает дескриптор LDT при каждой перегрузке селектора в регистре LDTR.
Значение сегментного регистра (
селектор) содержит индекс дескрипто-
ра в дескрипторной таблице; бит, определяющий, к какой дескрипторной
таблице производится обращение (LDT или GDT); а также запрашиваемые
права доступа к сегменту. Таким образом, селектор выбирает дескриптор-
ную таблицу, выбирает дескриптор из таблицы, а по дескриптору опреде-
ляется положение сегмента в линейном пространстве памяти. Однако об-
ращение к дескрипторным
таблицам происходит только при загрузке се-
лектора в сегментный регистр. При этом процессор помещает дескриптор в
75 • Virtual-8086 Mode (VM, 17 бит) Включает/выключает режим V86 в защищенном режиме. • Resume Flag (RF, 16 бит) Флаг возобновления исполнения при отлад- ке. • Nested Task (NT, 14 бит) Флаг вложенной задачи. Устанавливается, когда текущая задача связана с прерванной задачей, очищается, если такой связи нет. • I/O Privilege Level (IOPL, 12-13 биты) определяет уровень привилегий ввода/вывода для текущей задачи. Сегментные регистры CS, SS, DS, ES, как и в процессорах 8086/8088, имеют разрядность 16 бит. К ним добавлены регистры FS и GS дополни- тельные сегментные регистры данных. В реальном режиме, в котором процессор находится сразу после вклю- чения питания или сброса, сегментные регистры определяют 64Кб сегмен- ты, как и в 16-разрядных процессорах, а в защищенном режиме содержат указатели (т.н. селекторы) на описатели сегментов (64-разрядные дескрип- торы), находящиеся в памяти в виде таблиц. Дескриптор, помимо базового адреса, содержит предельный размер сегмента и атрибуты сегмента (права доступа). Дескрипторы являются ос- новой защиты и мультизадачности. В защищенном режиме сегменты могут начинаться с любого линейного адреса и иметь любой предел вплоть до 4Гбайт. Существуют две обязательные дескрипторные таблицы - глобаль- ная (GDT) и дескрипторная таблица прерывания (IDT), а также множество (до 8192) локальных дескрипторных таблиц (LDT), из которых в один мо- мент времени процессору доступна только одна. Дескрипторы сегментов могут находиться в GDT или LDT. Расположение дескрипторных таблиц определяется регистрами процессора GDTR (Global Descriptor Table Regis- ter), IDTR (Interrupt Descriptor Table Register), LDTR (Local Descriptor Table Register). Регистры GDTR и IDTR - 6-байтные, они содержат 32 бита ли- нейного базового адреса дескрипторной таблицы и 16 бит предела табли- цы. Программно доступная часть регистра LDTR - 16 бит, которые явля- ются селектором LDT. Дескрипторы LDT находятся в GDT. Однако чтобы не обращаться каждый раз к GDT, в процессоре имеется теневая (про- граммно недоступная) часть регистра LDTR, в которую процессор поме- щает дескриптор LDT при каждой перегрузке селектора в регистре LDTR. Значение сегментного регистра (селектор) содержит индекс дескрипто- ра в дескрипторной таблице; бит, определяющий, к какой дескрипторной таблице производится обращение (LDT или GDT); а также запрашиваемые права доступа к сегменту. Таким образом, селектор выбирает дескриптор- ную таблицу, выбирает дескриптор из таблицы, а по дескриптору опреде- ляется положение сегмента в линейном пространстве памяти. Однако об- ращение к дескрипторным таблицам происходит только при загрузке се- лектора в сегментный регистр. При этом процессор помещает дескриптор в
Страницы
- « первая
- ‹ предыдущая
- …
- 73
- 74
- 75
- 76
- 77
- …
- следующая ›
- последняя »