Microprocessor is a 16-bit microprocessor. It is the highest data carrying
capacity of 8086. However, it canhandle 8-bit data as well.
are 20 address lines for 8086. Address lines define how much memory the processor
can access. In this case, it is 220=1 Mb memory.
frequency= 5 MHz
14 16-bit registers.
Basic architecture of 8086 Microprocessor:
internal architecture of 8086 Microprocessor is essentially divided into 2
Interface Unit (BIU)
Bus Interface Unit:
It handles all data and addresses on the buses for the Execution Unit
i.e. it sends out addresses, fetches instructions from memory, reads data from
ports and memory and writes data to ports and memory. BIU also generates the
20-bit physical address.
The BIU consists of a number of functional groups or parts such as:
It prefetches 6 instruction bytes from memory to
the queue of processor. It is a FIFO kind of buffer.
The flow of operation is such:
Queue -> EU
It simply reads the instruction from the
instruction queue when the EU is ready for the next instruction.
It is much faster than sending address to system
memory and then fetching the instruction.
Queue follows the concept of pipelining.
Memory being divided into smaller segments is
BIU contains four 16-bit registers, namely
Segment (CS): Used for addressing a memory location where executable program is
Segment (DS): Contains most data used by the program. It holds the offset
Segment (SS): A section of memory to store addresses and data while a
Segment (ES): Additional data segment used to hold extra destination data.
register can hold 64kb data.
It is present below the segment register. The IP
holds the 16-bit address of the next code byte within the code segment.
basically does the arithmetic and logical calculations. It tells the BIU where
to fetch instructions from; it decodes the instructions and executes them.
like BIU, also consists of a number of components, such as:
& Logic Unit: Does all arithmetic and logical calculations
Unit: Performs various internal operations.
also consists of registers which are:
Purpose Register: Used for temporary storage of 8-bit data
Register: A flip-flop indicating occurrence of any condition during execution
of an instruction. There are 2 types:
(a) Control Flags (b) Conditional Flags
General Purpose Registers:
8 general purpose registers:
Register: Accumulator which stores operands for arithmetic calculations
Register: Base register holding starting address of memory region
Register: Used to store loop counter in loop instruction
Register: Contains i/o port address for i/o instructions
stack pointer (SP) register contains the 16-bit offset from the start of the
segment to the memory location where a word was most recently stored on the
stack. Most recently used address is stored on top of the stack.
registers such as the SI, DI, BP are also used for temporary storage purposes.
Conditional Flags: Indicate
occurrence of mathematical operations. They are:
Carry Flag (CF): Indicates if carry
is generated in MSB position
Auxiliary Flag (AF): Performs Binary
to BCD conversion
Parity Flag (PF):Indicates parity
of the result
Zero Flag (ZF):It is high if the
result of operation is zero
Sign Flag (SF):Indicates the the
sign magnitude of the result
Overflow Flag (OF): Indicates the
exceeding of capacity of machine.
Control Flags: They are set or
reset to control certain operations of the processor with the help of specific
user-input instructions in the program. They are:
Trap Flag (TF): Allows user to
execute one instruction at a time
Interrupt Flag (IF): Allows/prohibits
interruption of program
Direction Flag (DF): Used in string
direction: low->high or high->low