* better
[mascara-docs.git] / hw / i386.reference / s13_01.htm
blob921ef807f6bee2e01e5fc9a057ae1f7ba88b33d5
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
2 <HTML>
3 <HEAD>
4 <TITLE>80386 Programmer's Reference Manual -- Section 13.1</TITLE>
5 </HEAD>
6 <BODY>
7 <B>up:</B> <A HREF="c13.htm">
8 Chapter 13 -- Executing 80286 Protected-Mode Code</A><BR>
9 <B>prev:</B>
10 <A HREF="c13.htm">Chapter 13 -- Executing 80286 Protected-Mode Code</A><BR>
11 <B>next:</B> <A HREF="s13_02.htm">13.2 Two ways to Execute 80286 Tasks</A>
12 <P>
13 <HR>
14 <P>
15 <H1>13.1 80286 Code Executes as a Subset of the 80386</H1>
16 In general, programs designed for execution in protected mode on an 80286
17 execute without modification on the 80386, because the features of the 80286
18 are a subset of those of the 80386.
19 <P>
20 All the descriptors used by the 80286 are supported by the 80386 as long as
21 the Intel-reserved word (last word) of the 80286 descriptor is zero.
22 <P>
23 The descriptors for data segments, executable segments, local descriptor
24 tables, and task gates are common to both the 80286 and the 80386. Other
25 80286 -- segment, call gate, interrupt gate, and trap
26 -- supported by the 80386. The 80386 also has new versions of
27 descriptors for TSS segment, call gate, interrupt gate, and trap gate that
28 support the 32-bit nature of the 80386. Both sets of descriptors can be
29 used simultaneously in the same system.
30 <P>
31 For those descriptors that are common to both the 80286 and the 80386, the
32 presence of zeros in the final word causes the 80386 to interpret these
33 descriptors exactly as 80286 does; for example:
34 <DL>
35 <DT>
36 Base Address
37 <DD>
38 The high-order eight bits of the 32-bit base address are
39 zero, limiting base addresses to 24 bits.
40 <DT>
41 Limit
42 <DD>
43 The high-order four bits of the limit field are zero,
44 restricting the value of the limit field to 64K.
45 <DT>
46 Granularity bit
47 <DD>
48 The granularity bit is zero, which implies that the value
49 of the 16-bit limit is interpreted in units of one byte.
50 <DT>
51 B-bit
52 <DD>
53 In a data-segment descriptor, the B-bit is zero, implying
54 that the segment is no larger than 64 Kbytes.
55 <DT>
56 D-bit
57 <DD>
58 In an executable-segment descriptor, the D-bit is zero,
59 implying that 16-bit addressing and operands are the
60 default.
61 </DL>
62 For formats of these descriptors and documentation of their use refer to
63 the iAPX 286 Programmer's Reference Manual.
64 <P>
65 <HR>
66 <P>
67 <B>up:</B> <A HREF="c13.htm">
68 Chapter 13 -- Executing 80286 Protected-Mode Code</A><BR>
69 <B>prev:</B>
70 <A HREF="c13.htm">Chapter 13 -- Executing 80286 Protected-Mode Code</A><BR>
71 <B>next:</B> <A HREF="s13_02.htm">13.2 Two ways to Execute 80286 Tasks</A>
72 </BODY>