8086 Microprocessor Features, Architecture

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 

8086-Microprocessor-Architecture
Internal Architecture of 8086 Microprocessor
The internal Architecture of 8086 Microprocessor is divided into two main blocks.
  1. BIU (Bus Interface Unit)
  2. 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:
  1. 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.
  2. 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.
  3. 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.
  4.  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.
  1. 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)
  2. 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.
  3. 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.
  4. 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 8086 Microprocessor Features, Architecture Reviewed by Sandesh Shrestha on 14 March Rating: 5

No comments:

Powered by Blogger.