Intel 8086 microprocessor is a first member of x86 family of
processors. Advertised as a "source-code compatible" with
Intel 8080 and
Intel 8085 processors, the 8086 was not
object code compatible with them. The 8086 has complete 16-bit
architecture - 16-bit internal registers, 16-bit data bus,
and 20-bit address bus (1 MB of physical memory). Because the
processor has 16-bit index registers and memory pointers, it can
effectively address only 64 KB of memory. To address memory beyond 64
KB the CPU uses segment registers - these registers specify memory
locations for code, stack, data and extra data 64 KB segments. The
segments can be positioned anywhere in memory, and, if necessary,
user programs can change their position. This addressing method
has one big advantage - it is very easy to write memory-independent
code when the size of code, stack and data is smaller than 64 KB
each. The complexity of the code and programming increases,
sometimes significantly, when the size of stack, data and/code is
larger than 64 KB. To support different variations of this awkward
memory addressing scheme many 8086 compilers included 6 different
memory models: tiny, small, compact, medium, large and huge. 64 KB
direct addressing limitation was eliminated with the introduction of
the 32-bit protected mode in Intel 80386
processor.
Intel 8086 instruction set includes a few very powerful string
instructions. When these instructions are prefixed by REP (repeat)
instruction, the CPU will perform block operations - move block of
data, compare data blocks, set data block to certain value, etc, that
is one 8086 string instruction with a REP prefix could do as
much as a 4-5 instruction loop on some other processors. To be fair,
the Zilog Z80 included move and search
block instructions, and Motorola 68000
could execute block operations using just two instructions.
The 8086 microprocessor provides support for
Intel 8087 numeric co-processor. The CPU
recognizes all Floating-Point (FP) instructions. When the FP
instructions reference the memory, the CPU calculates memory address
and performs dummy memory read. The calculated address, and possibly
read data, is captured by the FPU. After that the CPU proceeds to the
next instruction, while the FPU executes the floating-point
instruction. Thus, both integer and floating-point instructions can
be executed concurrently.
Original Intel 8086 CPU was manufactured using HMOS technology. Later
Intel introduced 80C86 and 80C86A - CHMOS versions of the CPU. These
microprocessors had much lower power consumption and featured standby
mode.
|