Assembler - язык неограниченных возможностей


Регистры управления процессором - часть 2


(остальные биты зарезервированы, и программы не должны изменять их значения)

CR1: зарезервирован

CR2: регистр адреса ошибки страницы

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

CR3 (PDBR): регистр основной таблицы страниц

    биты 31 – 11: 20 старших бит физического адреса начала каталога страниц, если бит РАЕ в CR4 равен нулю, или

    биты 31 – 5: 27 старших бит физического адреса таблицы указателей на каталоги страниц, если бит РАЕ = 1

    бит 4 (80486+): бит PCD (запрещение кэширования страниц) — этот бит запрещает загрузку текущей страницы в кэш-память (например, если произошло прерывание и система не хочет, чтобы обработчик прерывания вытеснил основную программу из кэша)

    бит 3 (80486+): бит PWT (бит сквозной записи страниц) — управляет методом записи страниц во внешний кэш

CR4: этот регистр (появился только в процессорах Pentium) управляет новыми возможностями процессоров. Все эти возможности необязательно присутствуют, и их надо сначала проверять при помощи команды CPUID

    бит 9: бит FSR — разрешает команды быстрого сохранения/восстановления состояния FPU/MMX FXSAVE и FXRSTOR (Pentium II)

    бит 8: бит РМС — разрешает выполнение команды RDPMC для программ на всех уровнях привилегий (его PMC = 0, но только на уровне 0) (Pentium Pro и выше)

    бит 7: бит PGE — разрешает глобальные страницы (бит 8 атрибута страницы), которые не удаляются из TLB при переключении задач и записи в CR3 (Pentium Pro и выше)

    бит 6: бит МСЕ — разрешает исключение #МС

    бит 5: бит РАЕ — включает 36-битное физическое адресное пространство (Pentium Pro и выше)

    бит 4: бит PSE — включает режим адресации с 4-мегабайтными страницами

    бит 3: бит DE — запрещает отладочные прерывания по обращению к портам

    бит 2: бит TSD — запрещает выполнение команды RDTSC для всех программ, кроме программ, выполняющихся на уровне привилегий 0

    бит 1: бит PVI — разрешает работу флага VIF в защищенном режиме, что может позволить некоторым программам, написанным для уровня привилегий 0, работать на более низких уровнях

    бит 0: бит VME — включает расширения режима V86 — разрешает работу флага VIF для V86-приложений





Начало  Назад  Вперед