Features Of Intel 8086 Microprocessor
- 8086 Microprocessor is a 16-bit microprocessor developed by Intel Manufacturer.
- The 8086 Microprocessor 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.
- It has a 20-bit Address Bus.
- Total Memory capacity is 2^20 = 1 MB.
- Data ranges from 0000 H to FFFF H and Address ranges from 00000 H to FFFFF H.
- General purpose registers are also of 16 bits.
Internal Architecture Of 8086 Microprocessor
Internal Architecture of 8086 Microprocessor |
The internal Architecture of 8086 Microprocessor is divided into two main blocks.
- BIU (Bus Interface Unit)
- EU (Execution Unit)
A. BIU:
- BIU stands for Bus Interface Unit. It is responsible for fetching instructions from memory, reading operands/data and writing results to ports.
- BIU handles all transfers of data and addresses on the buses for the Execution Unit.
The different components of BIU are:
- Segment Registers: are used for storing the address of 16 bit size. The segment registers are:
- Code Segment Register(CS): It contains the starting address of a program's code segment.
- Data Segment Register(DS): It contains the starting address of a program's data segment.
- Stack Segment Register(SS): It Permits the implementation of a stack in memory.
- Extra Segment Register(ES): It is used by some string operations to handle memory addressing.
- Instruction Pointer(IP): The 16 bit IP Register contains the offset address of the next instruction that is to execute. IP is associated with CS register as (CS:IP). It is also called Offset Register.
- Instruction Stream Byte Queue:
- It is a Queue which can store 6 instructions at a time. Queue is a First In First Out(FIFO) memory.
- This unit is used to pre-fetch the instruction while the Execution Unit is executing another instruction. This is called Instruction pipelining.
- Address Calculator:
- This is a component to calculate the effective 20 bit physical address of 8086 microprocessor. It produces 20 bit address from 16 bit segment register and offset register.
- Example to calculate the 20 bit physical address.
Let us take one segment register = CS.
The 16 bit content of CS will be shifted 4 bits to left and then adding 16 bit contents of IP(offset length).
Let CS = 1000 H
Then, shifted 4 bits to left = 10000 H
Let IP = 2345 H
10000 + 2345 = 12345 H
So the 20 bit effective physical address is 12345 H. - The possible valid combinations are: CS:IP , SS:SP or SS:BP, DS:SI or DS:DI, ES:SI or ES:DI.
B. Execution Unit(EU):
EU is responsible for decoding and executing the instruction that are fetched by BIU. It has 16 bit ALU which can perform various operations such as AND, OR, increment, decrement etc.
- General Purpose Registers: EU has 8 general purpose registers.
- AH,AL = AX(Accumulator Register)
- BH,BL = BX(Base register)
- CH,CL = CX(counter register)
- DH,DL = DX (Data Register)
- Flag Register: is a combination of flipflops to show the condition and status of operations performed by ALU.
- A 16 bit Flag in EU contains 9 active flags.
- Table below shows the location of the nine active flags in the flag register.
-
X X X X OF DF IF TF SF ZF X AF X PF X CF - X = Don't Care
- Conditional Flags:
- CF: Carry Flag
- PF: Parity Flag
- AF: Auxiliary Flag
- ZF: Zero Flag
- SF: Sign Flag
- Control Flag:
- TF: Single Step Trap Flag
- IF: Interrupt Flag
- DF: String Direction Flag
- OF: Overflow Flag
- Trap Flag is used for the single stepping through a program.
- Interrupt Flag is used to allow or prohibit the interruption of a program.
- Direction Flag is used for string operation.
- Overflow Flag is used to indicate the overflow of result when result is very large.
- Pointer Register: The 16 bit pointer registers are
- SP(Stack Pointer) is a 16 bit pointer register used to point to the initial address of Stack. Stack Pointer is used with Stack Segment Register(SS:SP).
- BP(Base Pointer) is a 16 bit register that initializes the address of program associated with the Stack. It is also used with the Stack Segment Register(SS:BP). It can also be combined with the Destination Index Register and Source Index Register.
- Index Register: There are two 16 bit index registers:
- Source Index register(SI): It is used when ALU performs string operation. It can be used with Data Segment register(DS:SI).
- Destination Index Register(DI): It is also used when ALU performs String Operations. It can be combined with the Extra Segment Register(ES:DI).
8086 Microprocessor Features, Architecture
Reviewed by Sandesh Shrestha
on
14 March
Rating:
No comments: