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


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


Пять 32-битных регистров CR0 – CR4 управляют функционированием процессора и работой отдельных его внутренних блоков.

    CR0: флаги управления системой

    бит 31: бит PG — включает и выключает режим страничной адресации

    бит 30: бит CD — запрещает заполнение кэша. При этом чтение из кэша все равно будет происходить

    бит 29: бит NW — запрещает сквозную запись во внутренний кэш — данные, записываемые в кэш, не появляются на внешних выводах процессора

    бит 18: бит AM — разрешает флагу АС включать режим, в котором невыровненные обращения к памяти на уровне привилегий 3 вызывают исключение #АС

    бит 16: бит WP — запрещает запись в страницы, помеченные как только для чтения на всех уровнях привилегий (если WP = 0, защита распространяется только на уровень 3). Этот бит предназначен для реализации метода создания копии процесса, популярного в UNIX, в котором вся память нового процесса сначала полностью совпадает со старым, а затем, при попытке записи со стороны нового процесса, создается копия страницы, в которую произошла запись

    бит 5: бит NE — включает режим, в котором ошибки FPU вызывают исключение #MF, а не IRQ13

    бит 4: бит ЕТ — использовался только на 80386DX и указывал, что FPU присутствует

    бит 3: бит TS — устанавливается процессором после переключения задачи. Если затем выполнить любую команду FPU, произойдет исключение #NM, обработчик которого может сохранить/восстановить состояние FPU, очистить этот бит командой CLTS и продолжить программу

    бит 2: бит ЕМ — эмуляция сопроцессора. Каждая команда FPU вызывает исключение #NM

    бит 1: бит МР — управляет тем, как исполняется команда WAIT. Должен быть установлен для совместимости с программами, написанными для 80286 и 80386 и использующими эту команду

    бит 0: бит РЕ — если он равен 1, процессор находится в защищенном режиме




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