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