8086 microprocessor is an extended version of the 8085 microprocessor and it is a 16-bit microprocessor that has 20 address lines and 16 data lines where the storage will be up to 1MB.

Microprocessor 8086

More About 8086 Microprocessor

The 8086 Microprocessor was designed by Intel in the year 1978. It was developed in order to overcome the drawbacks of the 8085 Microprocessors. The number 8086 denotes the IC number of this microprocessor. The 8086 gave rise to the x86 architecture which further became intel’s most successful line of processors. The 8086 microprocessor comes with powerful set of instructions that provides operations like multiplication and division easily.

8086 Microprocessor or 16-Bit Microprocessor

Reason why it is called as 8086 Microprocessor or 16-bit microprocessor is that all the internal registers, internal and external data buses are 16-bits Wide and single cycle ALU will also perform operation on 16 bits of Data which means 65536 address can operate at a time.

Features of 8086 Microprocessor

Below are some of the important features of 8086 Microprocessors-

Configutaion-Pin-Microprocessor8086

  • This microprocessor has the capacity to store six instruction bytes from the memory which results in fast process and this is termed as instruction queue.
  • It is the first 16-bit processor that has 16-bit ALU, 16-bit register, internal data bus, 16-bit external data bus which results in fast processing.
  • To improve the performance, this processor utilizes two stages of pipelining i.e., fetch stage and execute stage.
  • This has 256 vectored interrupts
  • This microprocessor comes with 29000 transistors.

Architecture of 8086 Microprocessor

The overview of the architecture of 8086 microprocessor –

Architecture-of-Microprocessor8086

Registers

The 8086 has several 16-bit registers, including:

  • Data Registers (AX, BX, CX, DX): Used for general-purpose data manipulation.
  • Pointer and Index Registers (SP, BP, SI, DI): Used for addressing memory.
  • Segment Registers (CS, DS, SS, ES): Used for accessing different segments of memory.

Execution Unit

The execution unit of the 8086 includes various functional units, such as:

  • Arithmetic and Logic Unit (ALU): To perform arithmetic and logical operations.
  • Control Unit: Controls the flow of instructions and data within the microprocessor.
  • Instruction Decoder: Decodes and interprets instructions fetched from memory.

Bus Interface Unit (BIU)

The BIU handles external data and address bus operations. It consists of:

  • Instruction Pointer (IP): Points to the memory location of the next instruction.
  • Instruction Queue: Holds the prefetched instructions for faster execution.
  • Address Generation Unit (AGU): Generates memory addresses.

Memory Management

The 8086 uses a segmented memory model, where the memory is divided into segments of 64 KB each. The segment registers are used to access different segments of memory.

Instruction Set

The 8086 supports a rich instruction set, including various data movement, arithmetic, logic, and control instructions. It also supports different addressing modes, such as immediate, register, direct, indirect, etc.

Interrupts

The 8086 microprocessor supports both hardware and software interrupts. It has an Interrupt Vector Table (IVT) that contains the addresses of interrupt service routines.

Timing and Control

The 8086 uses a clock signal for synchronization and has various control signals for data and address bus operations.

Difference Between 8085 Microprocessor and 8086 Microprocessor

Here are some of the major advantages and disadvantages of 8085 and 8086 Microprocessor-

8085 Microprocessor8086 Microprocessor
This is an 8-bit microprocessorThis is an 16-bit microprocessor
It has 16-bit address lineIt has 20-bit address line
It has 8-bit data busIt has 16-bit data bus
The memory capacity is 64KBThe memory capacity is 1MB
The clock of this microprocessor is 3 MHzThe clock speed of this microprocessor varies between 5,8 and 10MHz for various versions.
This processor has five flagsThis processor has nine flags
It does not support memory segmentationIt supports memory segmentation
Pipelining is not supportedPipelining is supported
This process is based on accumulatorThis process is based on general purpose register
No minimum or maximum codesIt has minimum and maximum codes
In 8085, only one processor is usedIn 8086, more than one processor can be used and an additional external processor can be added.
The cost of 8085 is lowThe cost of 8086 is high
It consists of 6500 transistorsIt consists of 29000 transistors
This processor does not have instruction queueThis processor has instruction queue

 

Operating Mode of 8086 Microprocessor

In 8086 microprocessors, there are two types of operating modes namely –

  1. Real Mode
  2. Protected Mode

Real Mode

The Real Mode is the default mode of operation for the 8086 microprocessor. In Real Mode, the processor behaves like a 16-bit microprocessor, addressing a maximum of 1 MB of memory. The memory is divided into segments, and the segment registers (CS, DS, SS, ES) are used to access different segments.

The segment: offset addressing scheme is used, where the physical address is calculated by combining a segment register with an offset. Real Mode provides compatibility with earlier 8080/8085 processors, allowing them to run on the 8086 without modification. It has limited memory protection and no support for multitasking or memory virtualization.

Protected Mode

The Protected Mode is a more advanced operating mode introduced in the 80286 and later processors. In Protected Mode, the processor can address up to 16 MB (80286), 4 GB (80386), or even more memory (later processors). It provides memory protection, allowing each program to have its own memory space and preventing one program from accessing the memory of another.

Protected Mode supports multitasking, allowing multiple programs to run simultaneously. It offers advanced features like virtual memory, which allows the use of disk storage as an extension of physical memory. The operating system or software must explicitly switch the processor to Protected Mode using special instructions and appropriate initialization.

Interrupts

Interrupts-Microprocessor-8086

They play a crucial role in the operation of the 8086 microprocessor, allowing it to handle external events and prioritize tasks. Interrupts are signals generated by external devices or internal conditions that require the immediate attention of the microprocessor. When an interrupt occurs, the microprocessor temporarily suspends its current execution and transfers control to a specific interrupt handler routine.

The interrupt handler routine, also known as the Interrupt Service Routine (ISR), handles the interrupt and performs the required task.

After completing the interrupt handling, the microprocessor resumes the execution of the interrupted program.

There are two types of interrupts:

1. Hardware Interrupts

Hardware interrupts are the types of interrupts which are caused by any peripheral device  and sends signals through a specified pin to the processor.

Further, the hardware interrupts are classified into 2 categories –

    • Non-Maskable Interrupt

This interrupt has high priority than maskable interrupt. This cannot be replaced by any software and it is also used by the processor to handle in case of any emergency.

    • Maskable Interrupt (Interrupt Request)

The 8086 microprocessor has a dedicated hardware interrupt input pin called INTR (Interrupt Request). When a hardware interrupt occurs, the INTR pin is activated, and the microprocessor acknowledges the interrupt by executing the interrupt acknowledge cycle. The interrupt request is then prioritized using an Interrupt Controller (e.g., Intel 8259) to determine which interrupt handler routine to execute.

2. Software Interrupts

A microprocessor can be interrupted in two ways. It can be interrupted by internal abnormal conditions and a programmer can also interrupt at the required point while debugging a program. Software interrupts are generated by software instructions to initiate specific operations or to request services from the operating system.

The 8086 microprocessor has a specific software interrupt instruction called INT (Interrupt). The INT instruction is followed by an interrupt number or interrupt vector, which determines the specific interrupt handler routine to execute. Software interrupts are typically used for system calls, input/output operations, or to invoke specific functions provided by the operating system.

Examples of Software Interrupts are as below 

  1. Type 0 (division by zero)
  2. Type 1 (execution of single step for debugging the program)
  3. Type 2 it represents NMI (failure of power condition)
  4. Type 3 (break point interrupt)
  5. Type 4 (overflow interrupt)

What is IVT (Interrupt Vector Table)

The Interrupt Vector Table is a table located in memory that contains the addresses of the interrupt handler routines. The IVT is organized such that each interrupt number corresponds to a specific entry in the table. When an interrupt occurs, the microprocessor uses the interrupt number to index into the IVT and fetches the address of the corresponding interrupt handler routine.

Advantages and Disadvantages of 8086 Microprocessor

The 8086 microprocessor has certain advantages and disadvantages-

AdvantagesDisadvantages
User need not to write the same set of instruction constantly as the code can be reused.Additional code is required in order to integrate a new program.
The usage of memory is less as it can be used as and when it is needed.Extra time is required in order to link the procedures as the call are made to and fro to procedure.
Each code is written in different module and it becomes easier for the developer. Due to this the burden on one developer will be reduced.This process is not suitable for small set of instructions as it takes much time. Hence it is better to use when the instructions are large.
The development time of the developer will be reduced as each code is written in different module and thus many developers can work on many projects.This processor needs to do some additional work in order to save and load the status of the current process.
Since the programs are written in different modules, rather than one single module, it becomes easier to find out and fix the errors.It is  comparatively difficult to find errors and fix them.

 

Read Also:
Microprocessor 8085 – Configuration, Architecture, Functional Units
Microcontroller – Classification, Architecture, Application, Advantage