Microprocessor Tutorial

8085 Microprocessor

8086 Microprocessor

Difference between

8085 Microprocessor Architecture

Architecture Diagram of 8085

8085 Architecture consists of ALU, timing and control unit, instruction register and decoder, register array, interrupt control and serial I/O control.

Let's understand every unit.


It is a 8-bit register which is used to perform airthmetical and logical operations. It can stores the output of any operation and also works as registers for I/O operations.

Temporary Register

  • It is a 8-bit register which is used to hold the data on which the accumulator is computing operation temporarily.
  • This is not accessible by user.
  • General Purpose Registers

    8085 Microprocessor has 6 general purpose registers of 8-bit each named as B, C, D, E, H and L.
    Each register can accomodate 8-bits data.
    These registers are used in pairs to carry 16-bits data.Valid pairs are BC, DE and HL

    Arithmetic Logic Unit (ALU)

    ALU performs arithmetic and logical operations like ANDing, ORing, addition, subtraction etc.

    Flag Registers

    Flag register is a group of flip flops used to give status of different operations result. It consists of 5 Flip-Flops.
    It is also known as status registers and is connected to the ALU. The 5 flip-flops are as follows:

  • Sign(S)
  • Zero(Z)
  • Auxiliary Carry(AC)
  • Parity(P)
  • Carry(C)

  • Bit position of flip flop in flag register.


  • Sign Flag
  • As D7 is MSB therefore it determines the sign of the number.
    If D7 is 1 then sign flag(S) is 1 otherwise RESET.

    If D7 is 1, the number is negative else it is positive
  • Zero Flag
  • If the value of Accumulator is zero then this flag is SET otherwise RESET.
  • Auxiliary carry
  • If an operation performed in ALU generates the carry from lower nibble (D0 to D3) to upper nibble (D4 to D7) AC flag is set, else it resets.
  • Parity flag
  • If the no of 1's is even in the output stored in the accumulator then it is set otherwise it is reset for the odd.
  • Carry flag
  • If an operation performed in ALU generates the carry from D7 to next stage then CY flag is set, else it is reset.

    Instruction Register (IR)

    It is a 8-bit register. The instruction is stored in this register when it is fetched from the memory.

    Instruction Decoder

    It takes information from the IR and decode the instruction to be performed.

    Program Counter (PC)

    It is a 16-bit register. It stores the memory address of the next instruction to be executed.

    Stack Pointer

    It is also a 16 bit register used as memory pointer. It points to the memory location called stack. Stack pointer maintains the address of the last byte that is entered into stack.

    Timing and Control Unit

    It provides timing and control signal to microprocessor to perform various operations. It is a very important unit as it synchronizes the registers and flow of data through various registers and other units.

    Control Signals

  • ALE(Airthmetic Latch Enable): It provides control signal to synchronize the components of microprocessor.
  • RD: Active low, Used for reading operation
  • WR: Active low, Used for writing operation

  • Status Signals

    There are three status signals S0, S1, IO/M (M is active low)
    IO/MS1S2Data Bus Status
    001Memory Write
    010Memory Read
    101IO Write
    110IO Read
    011Opcode Fetch
    111Interrupt Acknowledge

    Interrupt Control

    This controls the interrupts during a process. For example an Input/output device may send an interrupt signal to notify that the data is ready for input.The microprocessor temporarily stops the execution of main program and transfers control to specific special routine known as "Interrupt Service Routine"(ISR). After ISR, control is transferred back to main program.
    There are 6 interrupt pins in this unit. Generally an external hardware is connected to these pins.

    Serial Input/Output Control

    SID and SOD are used for serial data communication.

    Address Bus and Data Bus

    Address bus carries the address of data to be stored and Data bus carries the data to be stored.