Ассемблер для Windows

       

Преобразование линейного адреса


. Конечно, читатель уже догадался, что для каждого процесса должен существовать свой каталог таблиц страниц. Переключение же между процессами можно осуществлять посредством изменения содержимого регистра CR3. Однако это не совсем рационально, так как требует большого объема памяти. В реальной ситуации для переключения между процессами производится изменение каталога таблиц страниц.

Обратимся теперь к структуре дескрипторов страниц (дескриптор таблицы страниц имеет ту же самую структуру).

  • Биты 12-31 - адрес страницы, который в дальнейшем складывается со смещением, предварительно сдвигаясь на двенадцать бит.
  • Биты 9-11 - для использования операционной системой.
  • Биты 7-8 - зарезервированы и должны быть равны нулю.
  • Бит 6 - устанавливается, если была осуществлена запись в каталог или страницу.
  • Бит 5 - устанавливается перед чтением и записью на страницу.
  • Бит 4 - запрещение кэширования.
  • Бит 3 - бит сквозной записи.
  • Бит 2 - если значение этого бита равно 0, то страница относится к супервизору, если 1, то страница относится к рабочему процессу. Этим устанавливается два уровня доступа.
  • Бит 1 - если бит установлен, то запись на страницу разрешена.
  • Бит 0. Если бит установлен, то страница присутствует в памяти. Страницы, содержащие данные сбрасываются на диск и считываются, когда происходит обращение к ним. Страницы, содержащие код, на диск не сбрасываются, но могут подкачиваться из соответствующих модулей на диске. Поэтому память, занятая этими страницами, также может рационально использоваться.
  • 47 Я имею в виду и микропроцессоры совместимые с Intel, выпускаемые другими фирмами.

    48 В узком смысле слова индексными регистрами называются DI и SI.

    49 Когда-то казалось, что один мегабайт памяти это много.

    50 В старых моделях регистр содержал всего 2 байта.

    51 Размер страницы в операционной системе Windows NT может отличаться от 4 Кб, что, впрочем, почти никогда не сказывается на программировании.



    Содержание раздела