Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Назначение системных регистров и глобальной дескрипторной таблицы



Системные регистры.

Системные регистры предназначены для обслуживания ЦП при многозадачной обработке. Для этого ЦП переводится в защищенный режим, однако, прежде чем процессор перейдет в защищенный режим, должна быть определена глобальная дескрипторная таблица GDT (GlobalDescriptorTable), так как все сегменты и прочие системные объекты должны быть описаны в дескрипторной таблице. GDT - это область памяти, в которой находятся дескрипторы.GDT должна располагаться в пределах первого мегабайта адресного пространства, так как перевести процессор в защищенный режим можно только из режима реальных адресов. Подразумевается, что GDT будет выровнена на границу 8 байт, т.к. дескрипторы, из которых она состоит, имеют восьмибайтный размер. Такое выравнивание позволит процессору максимально быстро обращаться к дескрипторам, а следовательно – увеличивает производительность. Число дескрипторов, определенных в GDT может быть любым в пределах от 0 до 8192. Нулевой дескриптор, то есть, определенный в самом начале GDT, процессор не использует. Если все же в программе встречается обращение к нулевому дескриптору, то процессор генерирует исключение и не позволяет доступ к этому дескриптору. В связи с этим, рекомендуется использовать нулевой дескриптор как шаблон, на основе которого программа может создавать новые дескрипторы. GDT используется процессором все время пока он находится в защищенном режиме. Параметры GDT хранятся в специальном 48 разрядном регистре GDTR.

Адреса GDT – адрес по которому размещена таблица.

Предел GDT – максимальное смещение относительно ее начала.

Для загрузки значений в регистр GDTR используется команда LGDT, операндом этой команды является 48-разрядное значение адреса памяти, где размещается адрес и предел GDT. Следует отметить, что размер GDT желательно не менять в процессе выполнения программы в защищенном режиме. Если программа будет динамически создавать новые дескрипторы, то размер GDT лучше всего заранее задать достаточно большим, например – 64 Кб (это максимальный размер). При этом следует учитывать, что при обращении процессора к несуществующим дескрипторам его поведение непредсказуемо, скорее всего, он зависнет.

Все 32-разрядные процессоры, начиная с Intel80386, имеют набор системных регистров, предназначенных для использования в защищенном режиме, среди них есть регистр управления CR0-CR4 (ControlRegister). Регистры управления состоят, в основном, из вкладок. Рассмотрим, например, бит PE (ProtectionEnable) регистра CR0, отвечающий за переход процессора в защищенный режим и обратно. Регистры управления предназначены для записи и считывания информации. Они имеют размер 32 бита и оперировать ими можно только целиком, то есть считывается значение целого регистра, изменяются нужные биты и записываются обратно. Единственная команда, которая позволяет доступ к этим регистрам – MOV, в качестве операнда которой, используется 32-разрядный регистр общего назначения. Если установить бит PE=1, то процессор перейдет в защищенный режим, если PE=0 – то в режим реальных адресов.

Пример:

1.Перевод процессоров в защищенный режим.

moveax, cr0;Копируем в eax содержимое cr0

oral, 1;Устанавливаем в копии 0 бит, которые соотв. 0 биту в CR0, то есть PE

movcr0, eax; Записываем в cr0 обновленное значение, проц. Перешел в защищенный

режим.

; 1 команда программы, которая выполнится в защищенном режиме

2.Перевод процессора в режим реальных адресов.

move ax, cr0

and al, 0feh; Сбрасываембит PE.

movcr0, eax; Процессор перешел в режим реальных адресов.

Если просто выполнить переход в защищенный режим, как в примере, то процессор зависнет, для работы в защищенном режиме, процессор использует дескрипторы сегментов вместо их адресов, поэтому прежде чем перевести процессор в защищенный режим нужно провести определенные подготовительные работы.





Дата публикования: 2015-01-24; Прочитано: 484 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...