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.