1 <!DOCTYPE HTML PUBLIC
"-//IETF//DTD HTML 2.0//EN">
4 <TITLE>80386 Programmer's Reference Manual -- Chapter
15</TITLE>
7 <B>up:
</B> <A HREF=
"toc.htm">
8 Table of Contents
</A><BR>
10 <A HREF=
"s14_08.htm">14.8 Differences From
80286 Real-Address Mode
</A><BR>
11 <B>next:
</B> <A HREF=
"s15_01.htm">15.1 Executing
8086 Code
</A>
15 <H1>Chapter
15 Virtual
8086 Mode
</H1>
17 The
80386 supports execution of one or more
8086,
8088,
80186, or
80188
18 programs in an
80386 protected-mode environment. An
8086 program runs in
19 this environment as part of a V86 (virtual
8086) task. V86 tasks take
20 advantage of the hardware support of multitasking offered by the protected
21 mode. Not only can there be multiple V86 tasks, each one executing an
8086
22 program, but V86 tasks can be multiprogrammed with other
80386 tasks.
24 The purpose of a V86 task is to form a
"virtual machine" with which to
25 execute an
8086 program. A complete virtual machine consists not only of
26 80386 hardware but also of systems software. Thus, the emulation of an
8086
27 is the result of cooperation between hardware and software:
29 <LI>The hardware provides a virtual set of registers (via the TSS), a
30 virtual memory space (the first megabyte of the linear address space of
31 the task), and directly executes all instructions that deal with these
32 registers and with this address space.
34 <LI>The software controls the external interfaces of the virtual machine
35 (I/O, interrupts, and exceptions) in a manner consistent with the
36 larger environment in which it executes. In the case of I/O, software
37 can choose either to emulate I/O instructions or to let the hardware
38 execute them directly without software intervention.
40 Software that helps implement virtual
8086 machines is called a V86
43 <A HREF=
"s15_01.htm">15.1 Executing
8086 Code
</A><BR>
44 <A HREF=
"s15_02.htm">15.2 Structure of a V86 Task
</A><BR>
45 <A HREF=
"s15_03.htm">15.3 Entering and Leaving V86 Mode
</A><BR>
46 <A HREF=
"s15_04.htm">15.4 Additional Sensitive Instructions
</A><BR>
47 <A HREF=
"s15_05.htm">15.5 Virtual I/O
</A><BR>
48 <A HREF=
"s15_06.htm">15.6 Differences From
8086</A><BR>
49 <A HREF=
"s15_07.htm">15.7 Differences From
80286 Real-Address Mode
</A>
53 <B>up:
</B> <A HREF=
"toc.htm">
54 Table of Contents
</A><BR>
56 <A HREF=
"s14_08.htm">14.8 Differences From
80286 Real-Address Mode
</A><BR>
57 <B>next:
</B> <A HREF=
"s15_01.htm">15.1 Executing
8086 Code
</A>