8086 Microprocessor was designed byIntel in 1976. Operations like multiplication and division can be easilyexecuted, as it has a powerful instruction set. It is a better version of 8085microprocessor. The 8086 gave rise to the x86 architecture, which eventually became Intel’smost successful line of processors.Intel 8086 is a 16 bit integer processor.
It has16-bit data bus and 20-bit address bus. The lower 16-bit address lines and16-bit data lines are multiplexed. As 8086 microprocessor does 2-stage pipelining (overlappingfetching and execution), its architecture is divided into two units:1. Bus Interfacing Unit(BIU)2. Execution Unit (EU) Features of Microprocessor 8086· Itis 16 bit processor.
- Thesis Statement
- Structure and Outline
- Voice and Grammar
· It is available in 3 versions based on thefrequency of operation ?o 8086 ? 5MHzo 8086-2 ? 8MHzo (c)8086-1 ? 10 MHz · Ithas 20 bit address lines to access memory. Hence, it can access1 MB memory location i.e., 2^20. · Ithas 16-bit address lines to access I/O devices, hence it can access 64K I/Olocation i.e., 2^16.
· 8086has 16 bit ALU, 16 bit registers and internal data bus and 16 bit external databus. It makes faster processing. · It uses two stages of pipelining, i.e. Fetch Stageand Execute Stage, which improves performance. · Theoperation is in two modes:o Minimum Mode: A system with only onemicroprocessor.o Maximum Mode: A system withmultiprocessor. · Ituses a memory banking system.
It means that the entire data is not storedsequentially in a single memory of 1 MB but memory is divided into two banks of512KB. · Ithas 256 vectored interrupts. · Itsupports of Multiply and Divide operation as it has a powerful instruction set.
· It consists of 29,000 transistors.BusInterfacing Unit (BIU) The Bus Interface Unit (BIU) generates the 20-bit physical memory addressand provides the interface with external memory. It operates with respect tobus cycles (machine cycles). This means it performs various machine cycles suchas memory read, I/O read etc. to transfer data with memory and I/O devices. BIU contains: · 4-byteinstruction Queue (Q)· TheSegment Registers (CS, DS, ES, SS).· TheInstruction Pointer (IP).
· TheAddress summing block(?). The BIU stores this pre-fetched instruction byte in FIFO register calledqueue. Fetching the next instruction while executing the current instruction isreferred as the instruction pipeline.
Bus Interface Unit produces the 20-bitphysical memory address by combining a 16-bit segment address with a 16-bit offsetaddress. There are four 16-bit segment registers:· Codesegment (CS) – The CS register is used for addressing a memory location in theCode Segment of the memory, where the executable program is stored.· Datasegment (DS) – The DS contains most data used by program. Data are accessed inthe Data Segment by an offset address or the content of other register thatholds the offset address.· Stacksegment (SS) – SS defined the area of memory used for the stack.· Extrasegment (ES) – ES isadditional data segment that is used by some of the string to hold thedestination data.
ExecutionUnit (EU) All general purpose registers of the 8086 microprocessorcan be used for arithmetic and logic operations. It fetches instructions from the Queue inBIU, decodes and executes them. Within the microprocessor, it performsarithmetic, logic and internal data transfer operations. In order to access theexternal module, it sends request signals to the BIUThe EU contains eight 16-bit generalpurpose registers AX, BX, CX, DX, SP, BP, SI and DI.
Among these registers AX,BX, CX, DX can be further into two 8-bit registers AH, BH, CHand DH. The general purpose registers can be used to store or 16-bitdata during program execution. A 16-bit flag register in the EUcontains nine active flags. Six of the nine flags in the flag registers are usedto indicate some condition produced by an instruction. The three remainingflags are used to control certain operations of the processors.There are 4 General PurposeRegisters:· AXRegisters- It stores operands for arithmetic like divide, rotate.· BXRegisters- It holds the starting base location of a memory region within a datasegment.· CXRegisters- It is primarily used in loop instruction to store loop counter.
· DXRegisters- It is used to contain I/O port address for I/O instruction. 16 flag registers available in the8086. Nine flags are used: six status flags and three control flags. Status Flags:· CarryFlag (CF): Set when there is a carry out of the high order bit (8 or 16 bit) ofthe result.· ParityFlag (PF): Set if result contains an even number of 1’s.
· AuxiliaryCarry Flag (AF): Set when there is a carry out of the low nibble.· ZeroFlag (ZF): Set if the result equals zero.· SignFlag (SF): Set if the result is a negative number.· OverflowFlag (OF): Set if the size of the resultexceeds the size of the ALU.Control Flags:· TrapFlag (TF) – Used for on-chip debugging.· Interruptenable Flag (IF) – when this flag is set to 1 CPU reacts to interrupts fromexternal devices.· DirectionFlag (DF) – this flag is used by some instructions to process data chains, whenthis flag is set to 1 – the processing is done backward, when this flag is setto 0 the processing is done forward.