The System Flags (EFLAGS Register)

The flags, which are contained in the EFLAGS register, not only control system operation, but also hold the result of instructions such as CMP (compare). At times, you will find the flags have been copied to a register, or to memory. The following figure gives the format of the flags in such cases:

 Bit     Hex    Flag name  Comments
  18  00040000     AC      Alignment Check, if the alignment mask is 1 (CR0).
  17  00020000     VM      V86 mode. Turned on for Virtual DOS Machines.
  16  00010000     RF      Resume Flag. Suppress debug exceptions for 1 instruction.
  14  00004000     NT      Nested Task. Involved with hardware task switching.
 13/12    3000    IOPL     The least privileged code which has unrestricted I/O access.
  11      0800     OF      Overflow. An arithmetic result does not fit.
  10      0400     DF      Direction of string instructions. 0=up, 1=down.
  09      0200     IF      Interrupt flag. 1=enabled, 0=disabled.
  08      0100     TF      Trap flag. Generate a debug exception after each instruction.
  07      0080     SF      Sign. 1=minus, 0=plus.
  06      0040     ZF      Zero or Equal. 1=zero result, 0=non-zero result.
  04      0010     AF      Auxilary flag.  Used in BCD arithmetic.
  02      0004     PF      Parity flag. 0=even, 1=odd.
  00      0001     CF      Carry flag. 0=no carry, 1=carry.


[Back: Typical Instructions]
[Next: Unassembled Instructions]