background image

Vol. 3A 2-11

SYSTEM ARCHITECTURE OVERVIEW

See also: Section 20.2.1, “Enabling Virtual-8086 Mode.”

AC

Alignment check or access control (bit 18) — If the AM bit is set in the CR0 register, alignment 
checking of user-mode data accesses is enabled if and only if this flag is 1. An alignment-check exception 
is generated when reference is made to an unaligned operand, such as a word at an odd byte address or a 
doubleword at an address which is not an integral multiple of four. Alignment-check exceptions are gener-
ated only in user mode (privilege level 3). Memory references that default to privilege level 0, such as 
segment descriptor loads, do not generate this exception even when caused by instructions executed in 
user-mode.
The alignment-check exception can be used to check alignment of data. This is useful when exchanging 
data with processors which require all data to be aligned. The alignment-check exception can also be used 
by interpreters to flag some pointers as special by misaligning the pointer. This eliminates overhead of 
checking each pointer and only handles the special pointer when used.
If the SMAP bit is set in the CR4 register, explicit supervisor-mode data accesses to user-mode pages are 
allowed if and only if this bit is 1. See Section 4.6, “Access Rights.”

VIF

Virtual Interrupt (bit 19) — Contains a virtual image of the IF flag. This flag is used in conjunction with 
the VIP flag. The processor only recognizes the VIF flag when either the VME flag or the PVI flag in control 
register CR4 is set and the IOPL is less than 3. (The VME flag enables the virtual-8086 mode extensions; 
the PVI flag enables the protected-mode virtual interrupts.) 
See also: Section 20.3.3.5, “Method 6: Software Interrupt Handling,” and Section 20.4, “Protected-Mode 
Virtual Interrupts.”

VIP

Virtual interrupt pending (bit 20) — Set by software to indicate that an interrupt is pending; cleared to 
indicate that no interrupt is pending. This flag is used in conjunction with the VIF flag. The processor reads 
this flag but never modifies it. The processor only recognizes the VIP flag when either the VME flag or the 
PVI flag in control register CR4 is set and the IOPL is less than 3. The VME flag enables the virtual-8086 
mode extensions; the PVI flag enables the protected-mode virtual interrupts. 
See Section 20.3.3.5, “Method 6: Software Interrupt Handling,” and Section 20.4, “Protected-Mode Virtual 
Interrupts.”

ID

Identification (bit 21) — The ability of a program or procedure to set or clear this flag indicates support 
for the CPUID instruction.

2.3.1 

System Flags and Fields in IA-32e Mode

In 64-bit mode, the RFLAGS register expands to 64 bits with the upper 32 bits reserved. System flags in RFLAGS 
(64-bit mode) or  EFLAGS (compatibility mode) are shown in Figure 2-5.
In IA-32e mode, the processor does not allow the VM bit to be set because virtual-8086 mode is not supported 
(attempts to set the bit are ignored). Also, the processor will not set the NT bit. The processor does, however, allow 
software to set the NT bit (note that an IRET causes a general protection fault in IA-32e mode if the NT bit is set).
In IA-32e mode, the SYSCALL/SYSRET instructions have a programmable method of specifying which bits are 
cleared in RFLAGS/EFLAGS. These instructions save/restore EFLAGS/RFLAGS.

2.4 MEMORY-MANAGEMENT 

REGISTERS

The processor provides four memory-management registers (GDTR, LDTR, IDTR, and TR) that specify the locations 
of the data structures which control segmented memory management (see Figure 2-6). Special instructions are 
provided for loading and storing these registers.