CHAPTER
1
INTRODUCTION TO
THE
80286
The 80286
is
the most powerful 16-bit processor in the 8086 series of microprocessors, which includes
the 8086, the 8088, the 80186, the 80188, and the 80286.
It
is
designed for applications that require
very high performance.
It
is
also an excellent choice for sophisticated "high end" applications that
will
benefit from its advanced architectural features: memory management, protection mechanisms, task
management, and virtual memory support. The 80286 provides,
on
a single VLSI chip, computational
and architectural characteristics normally associated with much larger minicomputers.
Sections 1.1, 1.2, and
1.3
of this chapter provide an overview of the 80286 architecture. Because the
80286 represents an extension of the 8086 architecture, some of this overview material may be
new
and unfamiliar to previous users of the 8086 and similar microprocessors. But the 80286
is
also an
evolutionary development, with the new architecture superimposed upon the industry standard 8086 in
such a way
as
to affect only the design and programming of operating systems and other such system
software.
Section
1.4
of this chapter provides a guide to the organization of this manual, suggesting
which chapters are relevant to the needs of particular readers.
1.1 GENERAL ATTRIBUTES
The 80286 base architecture has many features in common with the architecture of other members of
the 8086 family, such
as
byte addressable memory,
I/O
interfacing hardware, interrupt vectoring, and
support for both multiprocessing and processor extensions. The entire family has a common set of
addressing modes and basic instructions. The 80286 base architecture also includes a number of
exten-
sions which add to the versatility of the computer.
The 80286 processor can function in two modes of operation (see section 1.2 of this chapter, Modes of
Operation). In one of these modes only the base architecture
is
available to programmers, whereas in
the other mode a number of very powerful advanced features have been added, including support for
virtual memory, multitasking, and a sophisticated protection mechanism. These advanced features are
described in section
1.3
of this chapter.
The 80286 base architecture
was
designed to support programming in high-level languages, such
as
Pascal, C or
PL/M.
The register set and instructions are
well
suited
to
compiler-generated code. The
addressing modes (see section 2.6.3 in Chapter
2)
allow efficient addressing of complex data structures,
such as static and dynamic arrays, records, and arrays within records, which are commonly supported
by high-level languages. The data types supported by the architecture include, along with bytes and
words, high level language constructs such
as
strings, BCD, and floating point.
The memory architecture of the 80286 was designed to support modular programming techniques.
Memory
is
divided into segments, which may be of arbitrary size, that can be used to contain proce-
dures and data structures. Segmentation has several advantages over more conventional linear memory
architectures.
It
supports structured software, since segments can contain meaningful program units
and data, and more compact code, since references within a segment can be shorter (and locality of
reference usually insures that the next
few
references
will
be within the same segment). Segmentation
also lends itself to efficient implementation of sophisticated memory management, virtual memory,
and memory protection.
In addition,
new
instructions have been added to the base architecture to give hardware support for
procedure invocations, parameter passing, and array bounds checking.
1-1