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.
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