Глава 5. Регистр PDBR.
Для того, чтобы процессор мог использовать страничное преобразование, ему необходимо указать адрес начала каталога страниц (дальше он "разберётся" сам). Этот адрес хранится в регистре PDBR (Page Directory Base Register - регистр базы каталога страниц). Функцию этого регистра выполняет регистр управления CR3, т.е. PDBR - это синоним CR3.
Т.к. каталог страниц должен быть выравнен на границу 4Кб, его адрес будет содержать нули в младших 12 разрядах, а 20 старших, следовательно, будут нести информацию. Эти 20 разрядов и хранятся в регистре CR3. Оставшиеся 12 бит в CR3 зарезервированы, за исключением двух битов:
бит 3 - PWT (Write-Thorough) - сквозная запись,
| бит 4 - PCD (Cache Control) - контроль кэширования.
| |
Эти биты будут рассматриваться в разделе "Управление кэшами", а пока мы не будем их использовать - они, вместе со всеми остальными 12-ю зарезервированными битами в CR3 будут устанавливаться в 0.
Формат CR3 приведен на рис. 5-1:
Рисунок 5-1. Формат регистра CR3 (PDBR).
Для того, чтобы загрузить значение в CR3, можно использовать только команду MOV (как и для всех регистров управления). Т.к. регистры управления - 32-разрядные, то вторым операндом команды MOV должен быть 32-разрядный регистр общего назначения (как правило, это EAX).
Например, установку PDBR можно произвести так:
; Значение адреса должно быть выравнено на границу 4Кб: mov eax,Page_Directory_PHysical_Address mov cr3,eaxА так можно получить текущее значение PDBR:
mov eax,cr3
Следующая глава | Оглавление | Вопросы? Замечания? Пишите: sasm@narod.ru |
Copyright © Александр Семенко. |