Intel 64 and IA-32 Architectures Software Developers Manual Volume 1, Basic Architecture
Vol. 1 3-1
CHAPTER 3
BASIC EXECUTION ENVIRONMENT
This chapter describes the basic execution environment of an Intel 64 or IA-32
processor as seen by assembly-language programmers. It describes how the
processor executes instructions and how it stores and manipulates data. The execu-
tion environment described here includes memory (the address space), general-
purpose data registers, segment registers, the flag register, and the instruction
pointer register.
3.1 MODES OF OPERATION
The IA-32 architecture supports three basic operating modes: protected mode, real-
address mode, and system management mode. The operating mode determines
which instructions and architectural features are accessible:
• Protected mode — This mode is the native state of the processor. Among the
capabilities of protected mode is the ability to directly execute “real-address
mode” 8086 software in a protected, multi-tasking environment. This feature is
called virtual-8086 mode, although it is not actually a processor mode. Virtual-
8086 mode is actually a protected mode attribute that can be enabled for any
task.
• Real-address mode — This mode implements the programming environment of
the Intel 8086 processor with extensions (such as the ability to switch to
protected or system management mode). The processor is placed in real-address
mode following power-up or a reset.
• System management mode (SMM) — This mode provides an operating
system or executive with a transparent mechanism for implementing platform-
specific functions such as power management and system security. The
processor enters SMM when the external SMM interrupt pin (SMI#) is activated
or an SMI is received from the advanced programmable interrupt controller
(APIC).
In SMM, the processor switches to a separate address space while saving the
basic context of the currently running program or task. SMM-specific code may
then be executed transparently. Upon returning from SMM, the processor is
placed back into its state prior to the system management interrupt. SMM was
introduced with the Intel386
™
SL and Intel486
™
SL processors and became a
standard IA-32 feature with the Pentium processor family.