Microprocessor 8086 by Nirvaan Mahajan
Microprocessor 8086 by Nirvaan Mahajan
What is a microprocessor ?
• It has an instruction queue, which is capable of storing six instruction bytes from
the memory resulting in faster processing.
• It was the first 16-bit processor having a internal data bus and 16-bit external data
bus resulting in faster processing.
• It uses two stages of pipelining, i.e. Fetch Stage and Execute Stage, which
improves performance.
• Fetch stage can prefetch up to 6 bytes of instructions and store them in the queue.
• Execute stage executes these instructions.
• It consists of 29,000 transistors.
Comparison between 8085 & 8086 Microprocessor
Address Bus − 8085 has 16-bit address bus while 8086 has 20-bit address bus.
Memory − 8085 can access up to 64Kb, whereas 8086 can access up to 1 Mb of memory.
Instruction − 8085 doesn’t have an instruction queue, whereas 8086 has an instruction queue.
Pipelining − 8085 doesn’t support a pipelined architecture while 8086 supports a pipelined architecture.
ALU: It handles all arithmetic and logical operations, like +, −, ×, /, OR, AND, NOT operations.
Flag Register: It is a 16-bit register that behaves like a flip-flop, i.e. it changes its status according to the result stored in the
accumulator. It has 9 flags and they are divided into 2 groups − Conditional Flags and Control Flags.
Conditional Flags: It represents the result of the last arithmetic or logical instruction executed. Following is the list of conditional
flags −
• Carry flag:
• Auxiliary flag:
• Parity flag
• Zero flag
• Sign flag
• Overflow flag
Control Flags: Control flags controls the operations of the execution unit. Following is the list of control flags −
• Trap flag
• Interrupt flag
• Direction flag
General purpose register: There are 8 general purpose registers, i.e., AH, AL, BH, BL, CH, CL, DH, and DL.
These registers can be used individually to store 8-bit data and can be used in pairs to store 16 bit data. The valid
register pairs are AH and AL, BH and BL, CH and CL, and DH and DL. It is referred to the AX, BX, CX, and DX
respectively.
Stack pointer register: It is a 16-bit register, which holds the address from the start of the segment to the memory
location.
BIU (Bus Interface Unit)
BIU takes care of all data and addresses transfer on the buses for the EU like sending addresses, fetching
instructions from the memory, reading data from the ports and the memory as well as writing data to the
ports and the memory. EU and BIU are connected with the Internal Bus.
Instruction queue − BIU contains the instruction queue. BIU gets upto 6 bytes of next instructions and
stores them in the instruction queue. When EU executes instructions and is ready for its next instruction,
then it simply reads the instruction from this instruction queue resulting in increased execution speed.
Fetching the next instruction while the current instruction executes is called pipelining.
Segment register − BIU has 4 segment buses, i.e. CS, DS, SS & ES. It holds the addresses of instructions and data in
memory, which are used by the processor to access memory locations. It also contains 1 pointer register IP, which
holds the address of the next instruction to executed by the EU.
• CS − It stands for Code Segment. It is used for addressing a memory location in the code segment of the memory.
• DS − It stands for Data Segment. It consists of data used by the program and is accessed in the data segment by
an offset address.
• SS − It stands for Stack Segment. It handles memory to store data and addresses during execution.
• ES − It stands for Extra Segment. It is additional data segment, which is used by the string to hold the extra
destination data.
Instruction pointer − It is a 16-bit register used to hold the address of the next instruction to be executed.
8086 Pin Diagram
The 8086 microprocessor supports 8 types of instructions −
• Data Transfer Instructions: These instructions are used to transfer the data from the
source operand to the destination operand.
• Processor Control Instructions: These instructions are used to control the processor
action by setting/resetting the flag values.
• Iteration Control Instructions: These instructions are used to execute the given
instructions for number of times.
• Interrupt Instructions: These instructions are used to call a temporary halt during
program execution.
THANK YOU