The Intel 8086 is a 16-bit microprocessor designed by Intel corporation between 1976-1978. It is also called the iAPX 86. This Intel 8086 microprocessor gave rise to the x86 architecture or 16-bit architecture. Following figure is the internal architecture of Intel 8086 microprocessor
15 Features of 8086 Microprocessor
- 8086 includes an Instruction Queue. While an instruction is getting executed, it can store 6 instructions bytes at most at a time. It improves the performance.
- The 8086 microprocessor has registers, internal and external buses and ALU, all of 16-bit. As a result it performs faster operations.
- Microprocessor 8086 can simultaneously execute an instruction and fetch the next one.
- The 8086 is a 16-bit microprocessor. The term “16-bit” means that its arithmetic logic unit, internal registers and most of its instructions are designed to work with 16-bit binary words.
- The 8086 has a 16-bit data bus, so it can read data from or write data to memory and ports either 16 bits or 8 bits at a time. The 8088, however, has an 8-bit data bus, soil can only read data from or write data to memory and ports 8 bits at a time.
- The 8086 has a 20-bit address bus, so it can directly access 220 or 10,48,576 (1Mb) memory locations. Each of the 10, 48, 576 memory locations is byte Therefore, a sixteen-bit words are stored in two consecutive memory locations. The 8088 also has a 20-bit address bus, so it can also address 220 or 10, 48, 576 memory locations.
- The Features of 8086 Microprocessor can generate 16-bit I/O address, hence it can access 216 = 65536 I/O ports.
- The 8086 provides fourteen 16-bit registers.
- The 8086 has multiplexed address and data bus which reduces the number of pins needed, but does slow down the transfer of data (drawback).
- The 8086 requires one phase clock with a 33% duty cycle to provide optimized internal timing.
- The Features of 8086 Microprocessor is possible to perform bit, byte, word and block operations in 8086. It performs the arithmetic and logical operations on bit, byte, word and decimal numbers including multiply and divide.
- The Intel 8086 is designed to operate in two modes, namely the minimum mode and the maximum mode. When only one 8086 CPU is to be used in a microcomputer system, the 8086 is used in the minimum mode of operation. In this mode the CPU issues the control signals required by memory and I/O In multiprocessor (more than one processor in the system) system 8086 operates in maximum mode. In maximum mode, control signals are generated with the help of external bus controller (8288).
- The Intel 8086 supports multiprogramming. In multiprogramming, the code for two or more processes is in memory at the same time and is executed in a time-multiplexed fashion.
- An interesting feature of the 8086 is that it fetches up to six instruction bytes (4 instruction bytes for 8088) from memory and queue stores them in order to speed up instruction execution.
- The Features of 8086 Microprocessor provides powerful instruction set with the following addressing modes: Register, immediate, direct, indirect through an index or base, indirect through the sum of a base and an index register, relative and implied.
Intel 8086 microprocessor has two units; Execution Unit (EU) and Bus Interface Unit (BIU). These 2 units depends on each other to function.
Units of 8086 Microprocessor
Execution Unit (EU)
Execution unit receives program instruction codes and data from the BIU. Then it executes those and stores the result in the general registers. It can also store the data in a memory location or send them to an I/O device using the BIU. This unit, EU, has no connection with the system Buses. It receives and outputs all its data through BIU.
Bus Interface Unit
Bus Interface Unit has connection with the system busses. BIU and EU are connected with an internal bus. BIU connects EU with the memory or I/O circuits. It is responsible for transmitting data, addresses and control signal on the buses.
Registers of 8086 microprocessor
General Registers or General Purpose Registers can store both data and addresses. All general registers of the Intel 8086 microprocessor can be used for arithmetic and logic operations. In the above given figure of Intel 8086 microprocessor, all data, pointer and index registers are general registers.
Read More: Purposes of General Purpose Registers.
There are four segment registers, CS (Code Segment), DS (Data Segment), ES (Extra Segment) and SS (Stack Segment).
Read More: Purposes of Segment Registers.
Instruction Pointer (IP)
To access instructions, the Intel 8086 uses the CS and IP registers. The CS register contains the segment number of the next instruction, while the IP contains the offset. IP is updated each time an instruction is executed. As a result, it will then point to the next instruction. Unlike other, instructions can not directly manipulate the IP register. Thus an instruction may not contain IP as its operand.
Intel 8086 has 16 flag registers among which 9 are active. The purpose of the flag register is to indicate various statuses of the processor. It does this by setting the individual bits called flags. There are two kind of flag registers; status flag register and control flag register. Status flag register reflect the result of an operation executed by the processor. On the other hand, the control flag registers enable or disable certain operations of the processor. The 9 active flag registers are Carry Flag (CF), Parity Flag (PF), Auxiliary Flag (AF), Zero Flag (ZF), Sign Flag (SF), Trap Flag (TF), Interrupt Flag (IF), Direction Flag (DF) and Overflow Flag (OF).
Read More: Purposes of flag registers.
Arithmetic and Logic Unit (ALU)
Arithmetic and Logic Unit is a like a calculator. ALU performs all arithmetic operations along with decision making functions. In modern CPU or Microprocessors, there can be more than one integrated ALU to speed up arithmetical and logical operations, such as integer unit, floating point unit etc.