Intel 253668-032US User Manual

Page of 806
Vol. 3   17-1
CHAPTER 17
8086 EMULATION
IA-32 processors (beginning with the Intel386 processor) provide two ways to 
execute new or legacy programs that are assembled and/or compiled to run on an 
Intel 8086 processor: 
Real-address mode.
Virtual-8086 mode.
Figure 2-3 shows the relationship of these operating modes to protected mode and 
system management mode (SMM). 
When the processor is powered up or reset, it is placed in the real-address mode. 
This operating mode almost exactly duplicates the execution environment of the 
Intel 8086 processor, with some extensions. Virtually any program assembled and/or 
compiled to run on an Intel 8086 processor will run on an IA-32 processor in this 
mode.
When running in protected mode, the processor can be switched to virtual-8086 
mode to run 8086 programs. This mode also duplicates the execution environment of 
the Intel 8086 processor, with extensions. In virtual-8086 mode, an 8086 program 
runs as a separate protected-mode task. Legacy 8086 programs are thus able to run 
under an operating system (such as Microsoft Windows*) that takes advantage of 
protected mode and to use protected-mode facilities, such as the protected-mode 
interrupt- and exception-handling facilities. Protected-mode multitasking permits 
multiple virtual-8086 mode tasks (with each task running a separate 8086 program) 
to be run on the processor along with other non-virtual-8086 mode tasks.
This section describes both the basic real-address mode execution environment and 
the virtual-8086-mode execution environment, available on the IA-32 processors 
beginning with the Intel386 processor. 
17.1 REAL-ADDRESS 
MODE
The IA-32 architecture’s real-address mode runs programs written for the Intel 8086, 
Intel 8088, Intel 80186, and Intel 80188 processors, or for the real-address mode of 
the Intel 286, Intel386, Intel486, Pentium, P6 family, Pentium 4, and Intel Xeon 
processors.
The execution environment of the processor in real-address mode is designed to 
duplicate the execution environment of the Intel 8086 processor. To an 8086 
program, a processor operating in real-address mode behaves like a high-speed 
8086 processor. The principal features of this architecture are defined in Chapter 3, 
“Basic Execution Environment”, of 
thIntel® 64 and IA-32 Architectures Software 
Developer’s Manual, Volume 1
.