Программная модель МП-системы на основе процессора Pentium. Особенности организации памяти и допустимые способы адресации, страница 6

Флаг разрешения прерываний IF (Interrupt enable Flag) изменяет свое состояние при выполнении команд STI и CLI. При IF=1 микропроцессор воспринимает запросы маскируемых прерываний по входу INTR, при IF=0 происходит запрещение (маскирование) прерываний по входу INTR. Значение флага IF не влияет на восприятие внешних немаскируемых прерываний по входу NMI, а также программных прерываний, выполняемых по команде INT.

Флаг пошагового выполнения TF (Trap Flag) переводит микропроцессор в пошаговый режим, который используется только при отладке. При установке флага TF после выполнения каждой команды вызывается внутреннее прерывание INT 1. Команды установки и сброса флага TF отсутствуют. Управление этим флагом осуществляется опосредовано путем пересылки содержимого регистра признаков через стек в какой-либо регистр, установки восьмого бита (флага TF) и обратной пересылки содержимого этого регистра через стек в регистр признаков.

Первые два класса флагов полностью соответствуют  флагам процессора 8086. Оставшиеся флаги регистра признаков являются системными флагами.

Системные флаги управляют обработкой исключений, последовательностью вызываемых задач, вводом-выводом и рядом других функций. Число системных флагов процессоров х86 зависит от модели процессора. Каждая последующая модификация процессора х86 для обеспечения программной совместимости включает все системные флаги предыдущих моделей. Большинство системных флагов предназначено для использования операционной системой и в прикладных программах могут игнорироваться. На практике для исключения возможного изменения системных флагов прикладными программами может быть использована система защиты процессора. Процессор Pentium содержит следующие системные флаги.

NT (Nested Task) - флаг вложенной задачи.

IOPL (Input/Output Privilege Level) - двухбитовое поле, определяющее уровень привилегий ввода-вывода.

Флаг виртуального режима VM (Virtuar  8086  Mode), точнее флаг режима виртуального МП 8086 оказывает наиболее сильное влияние на расширение возможностей процессора Pentium при работе с программами, написанными для МП 8086. Когда VM = 0, процессор может работать только в защищенном или реальном режимах. Установка флага VM переводит процессор в V‑режим, который эмулирует программную среду МП 8086. В  этом  режиме  процессор  Pentium  функционирует  как быстродействующий  микропроцессор 8086, но реализует механизмы защиты памяти, страничной  адресации и ряд других дополнительных возможностей. Режим  виртуального микропроцессора 8086 является специальным  подмножеством защищенного режима, поэтому флаг VM  может  быть  установлен только в защищенном режиме. Установка флага VM осуществляется либо командой IRET на нулевом уровне привилегий, либо при переключении задач на любом уровне привилегий. На флаг  VM не действует команда POPF, а команда PUSHF сбрасывает этот флаг. Единичное значение флага  VM может сохраниться только в образе EFLAGS, загружаемом в сегмент состояния задачи при переключении задач или сохраняемом при прерывании.

Флаг возобновления RF (Resume Flag), другое название этого флага - флаг  маскирования ошибок отладки, является составной частью средств отладки и действует совместно с регистрами отладки. С  его  помощью  можно  запретить (маскировать)  прерывание  в  контрольной точке: если  флаг  RF установлен, то любая ошибка  отладки  при  выполнении  следующей команды игнорируется. Основным назначением флага  RF является временное запрещение особых случаев отладки для реализации возможности рестарта команды без немедленного формирования еще одного особого случая отладки. С помощью флага  RF подавляются многократные особые случаи в одной и той же команде.