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

       

Регистр флагов



Регистр флагов

. Содержит 32 бита. Вот используемые значения битов.

  • 0-й бит, флаг переноса (CF), устанавливается в 1 если был перенос из старшего бита;
  • 1-й бит, 1;
  • 2-й бит, флаг четности (PF). Устанавливается в 1, если младший байт результата содержит четное число единиц.
  • 3-й бит, 0;
  • 4-й бит, флаг вспомогательного переноса (AF). Устанавливается в 1, если произошел перенос из третьего бита в четвертый.
  • 5-й бит, 0;
  • 6-й бит, флаг нуля (ZF). Устанавливается в единицу, если результат операции ноль;
  • 7-й бит, флаг знака (SF). Равен старшему биту результата;
  • 8-й бит, флаг ловушки (TF). Установка в единицу этого флага приводит к тому, что после каждой команды вызывается INT 3. Используется отладчиками в реальном режиме;
  • 9-й бит, флаг прерываний (IF). Сброс этого флага в 0 приводит к тому, что микропроцессор перестает воспринимать прерывания;
  • 10-й бит, флаг направления (DF). Данный флаг учитывается в строковых операциях. Если флаг равен 1, то в строковых операциях адрес автоматически уменьшается;
  • 11-й бит, флаг переполнения (OF). Устанавливается в единицу, если результат операции над числом со знаком вышел за допустимые пределы;
  • 12,13-й биты, уровень привилегий ввода-вывода (IOPL);
  • 14-бит, флаг вложенной задачи (NT);
  • 15-й бит, 0;
  • 16-й бит, флаг возобновления (RF). Используется совместно с регистрами точек отладочного останова;
  • 17-й бит, в защищенном режиме включает режим виртуального режима 8086 (VM);
  • 18-й бит, флаг контроля выравнивания (AC). При равенстве этого флага 1 и при обращении к невыровненному операнду вызывает исключение 17;
  • 19-й бит, виртуальная версия флага IF (VIF). Работает в защищенном режиме;
  • 20-й бит, виртуальный запрос прерывания (VIP);
  • 21-й бит, флаг доступности команды идентификации;
  • 22-31-й, 0;


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