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.
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-
- 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 –
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 Microprocessor | 8086 Microprocessor |
This is an 8-bit microprocessor | This is an 16-bit microprocessor |
It has 16-bit address line | It has 20-bit address line |
It has 8-bit data bus | It has 16-bit data bus |
The memory capacity is 64KB | The memory capacity is 1MB |
The clock of this microprocessor is 3 MHz | The clock speed of this microprocessor varies between 5,8 and 10MHz for various versions. |
This processor has five flags | This processor has nine flags |
It does not support memory segmentation | It supports memory segmentation |
Pipelining is not supported | Pipelining is supported |
This process is based on accumulator | This process is based on general purpose register |
No minimum or maximum codes | It has minimum and maximum codes |
In 8085, only one processor is used | In 8086, more than one processor can be used and an additional external processor can be added. |
The cost of 8085 is low | The cost of 8086 is high |
It consists of 6500 transistors | It consists of 29000 transistors |
This processor does not have instruction queue | This processor has instruction queue |
Operating Mode of 8086 Microprocessor
In 8086 microprocessors, there are two types of operating modes namely –
- Real Mode
- 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
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
- Type 0 (division by zero)
- Type 1 (execution of single step for debugging the program)
- Type 2 it represents NMI (failure of power condition)
- Type 3 (break point interrupt)
- 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-
Advantages | Disadvantages |
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