Introduction:8086Microprocessor is an enhanced version of 8085 Microprocessor. It is a 16-bitmicroprocessor which has 16 data lines and 20 address lines. 8086microprocessor can handle 2^20 memory locations, which is equivalent to 1MB. Itsupports two operating modes:(i)Maximum operating mode: This mode is suitable for system having more than oneprocessors.(ii)Minimum operating mode: This mode is suitable for system having only oneprocessor. Features of 8086 microprocessor:Thefeatures of 8086 microprocessor are as follows:1.It has an instruction queue, which can store 6 instruction bytes from thememory.
2.It uses two stages of pipelining: Fetch and Execute. 3.In fetch stage, 6 bytes of instructions is fetched and stored in the queue. 4.These instructions are then executed in the execute stage.5.
It has 16-bit ALU, 16-bit internal registers, internal data bus and 16-bitexternal data bus Architecture of 8086 microprocessor: 8086 microprocessor functional units:8086microprocessor is divided into two functional units:(i)Execution Unit (EU)(ii)Bus Interface Unit (BIU) Execution Unit (EU):Theexecution gives instructions to BIU telling from where to fetch the data,decode and execute those instructions. Its function is to perform operations onthe data provided with the help of instruction decoder and ALU (Arithmetic andLogic Unit). It performs operations on the data through BIU.
ALU:Ithandles all the arithmetic and logical operations.Flag register:Itis a 16-bit register that changes its status according to the result stored inthe accumulator. It consists of 9 flags and are divided into two groups:(i)Conditional Flags(ii)Control FlagsConditional Flags:Itrepresents the result of the last arithmetic or logical instruction executed.There are 6 conditional flags:1.Carry flag: This fag is used when a carry is generated from the MSB (Most SignificantBit).This indicates an overflow condition for arithmetic operations.
CF=1 whena carry is generated and CF=0 when carry is not generated.2.Auxiliary flag: The processor uses this flag to perform binary to BCDconversion. The flag is set when a carry/borrow from lower nibble to uppernibble is generated due to an operation performed at ALU.3.Parity flag: This flag is used to indicate the parity of the result. If thereare even number of 1s, the flag is set and if odd number of 1s are present, theflag is reset.
4.Zero flag: ZF=1 when the result of any arithmetic or logical operation is zero,else ZF=0.5.
Sign flag: This flag holds the sign of the result. SF=1 when the result isnegative, else SF=0.6.
Overflow flag: This flag represents the result when the system capacity isexceeded.Control Flags:Controlflag controls the operations of the execution unit. There are 3 control flags:1.Trap flag: It is used for stepwise execution of the program and allows theexecution of only one instruction at a time for debugging.
If TF=1, then theprogram can be run in single step.2.Interrupt flag: It is used to allow or prevent the interruption of a program.For interrupt enabled condition, IF=1, else IF=0.3.
Direction flag: It is used in string operation. It is set when string bytes areaccessed from higher memory address to lower memory address and vice versa.