Intel 253668-032US User Manual
17-8 Vol. 3
8086 EMULATION
17.2 VIRTUAL-8086
MODE
Virtual-8086 mode is actually a special type of a task that runs in protected mode.
When the operating-system or executive switches to a virtual-8086-mode task, the
processor emulates an Intel 8086 processor. The execution environment of the
processor while in the 8086-emulation state is the same as is described in Section
17.1, “Real-Address Mode” for real-address mode, including the extensions. The
major difference between the two modes is that in virtual-8086 mode the 8086
emulator uses some protected-mode services (such as the protected-mode interrupt
and exception-handling and paging facilities).
As in real-address mode, any new or legacy program that has been assembled
and/or compiled to run on an Intel 8086 processor will run in a virtual-8086-mode
task. And several 8086 programs can be run as virtual-8086-mode tasks concur-
rently with normal protected-mode tasks, using the processor’s multitasking
facilities.
When the operating-system or executive switches to a virtual-8086-mode task, the
processor emulates an Intel 8086 processor. The execution environment of the
processor while in the 8086-emulation state is the same as is described in Section
17.1, “Real-Address Mode” for real-address mode, including the extensions. The
major difference between the two modes is that in virtual-8086 mode the 8086
emulator uses some protected-mode services (such as the protected-mode interrupt
and exception-handling and paging facilities).
As in real-address mode, any new or legacy program that has been assembled
and/or compiled to run on an Intel 8086 processor will run in a virtual-8086-mode
task. And several 8086 programs can be run as virtual-8086-mode tasks concur-
rently with normal protected-mode tasks, using the processor’s multitasking
facilities.
Table 17-1. Real-Address Mode Exceptions and Interrupts
Vector
No.
Description
Real-Address
Mode
Virtual-8086
Mode
Intel 8086
Processor
0
Divide Error (#DE)
Yes
Yes
Yes
1
Debug Exception (#DB)
Yes
Yes
No
2
NMI Interrupt
Yes
Yes
Yes
3
Breakpoint (#BP)
Yes
Yes
Yes
4
Overflow (#OF)
Yes
Yes
Yes
5
BOUND Range Exceeded (#BR)
Yes
Yes
Reserved
6
Invalid Opcode (#UD)
Yes
Yes
Reserved
7
Device Not Available (#NM)
Yes
Yes
Reserved
8
Double Fault (#DF)
Yes
Yes
Reserved
9
(Intel reserved. Do not use.)
Reserved
Reserved
Reserved
10
Invalid TSS (#TS)
Reserved
Yes
Reserved
11
Segment Not Present (#NP)
Reserved
Yes
Reserved
12
Stack Fault (#SS)
Yes
Yes
Reserved
13
General Protection (#GP)*
Yes
Yes
Reserved
14
Page Fault (#PF)
Reserved
Yes
Reserved
15
(Intel reserved. Do not use.)
Reserved
Reserved
Reserved
16
Floating-Point Error (#MF)
Yes
Yes
Reserved
17
Alignment Check (#AC)
Reserved
Yes
Reserved
18
Machine Check (#MC)
Yes
Yes
Reserved