The INTEL 8086 is a 16 bit microprocessor intended
to be used as the CPU in microcomputer. The arithmetic logic unit, internal
registers and most of its instructions are designed to work 16-bit binary
words. It has 16-bit data bus and 20-bit address bus and provides up to 1MB
storage. It consists two modes of operation, i.e. Maximum mode and minimum mode.
Maximum mode is suitable for system having multiple processors do not have
in-built memory. Mostly these architectures are used for microprocessors where
data and program memory are combined in a single memory interface. Since a microprocessor
does not have in built peripheral, the circuit is purely digital and clock
speed is from few MHZ to few GHZ. This increased clock speed facilities
intensive computation that a microprocessor is supposed to do.
Microprocessors has basic three steps:
Fetch: an instruction is copied from the
computer memory into the microprocessor.
Decode: the microprocessor figures out what
operation is meant to do.
operation is performed.
Operations can be very simple, like adding two
numbers, or moving some data from one place to another, or complicated, like
copying a series of letters and numbers (called a string) from one place in the
computer’s memory to a different place.
It is 16 bit processor. So that it has 16 bit ALU, 16 bit
registers and internal data bus and 16 bit external data bus. It makes faster
It has three version based on the frequency
8086 – 5MHz
8086-2 – 8MHz
8086-1 – 10 MHz
8086 has 20 bit address lines to access
memory. Hence it can access
2^20 = 1 MB memory
8086 has 16-bit address lines to access I/O
devices, hence it can access
2^16 = 64K I/O location
has two stages:
Fetch stage that pre fetch up to 6 bytes of
instructions stores them in the queue.
Execute stage that executes these
Pipelining improves the performance of the processor so
that operation is faster.
8086 uses memory banks- The
8086 uses a memory banking system. It means entire data is divided into
two banks of 512KB.
and Division- 8086 has a powerful
instruction set which supports Multiply and Divide operation
EU (Execution Unit)
Execution unit receives program instruction codes
and data from the BIU, executes them and stores the results in the registers. It
can store the data in a memory location and send them to the I/O devices by
passing the data back to the BIU. The unit has not connection with the system
Buses. It receives and outputs all its data through BIU. Execution unit gives
instructions to BIU about where to get the data from, decode it and then to
execute those instructions. It controls the operation on data using decoder and
ALU. It has had no direct connection with the system buses, but can perform
operations on data through BIU. EU has the following parts:
· ALU: It handles all the arithmetic
operations and logical operations.
· Flag Register- it is a 16-bit
register, and changes its status like flip-flop, according to the status or the
directing got. It has total nine flags which are divided as:
Conditional Flags- results of the
logical or arithmetic operation
1. Carrry flag-this flag indicates an over flow condition for arithmetic
2. Auxiliary flag- when an operation like addition or subtraction is
performed, it may result in carry/ borrow from lower nibble to upper nibble. The
processor uses the flag to account for that carry/borrow.