Microprocessors and Interfacing

ALU, Instruction Register and Decoder; Timing and Control Unit; Three Buses

C-CAT

ALU, Instruction Register and Decoder

5.1 Arithmetic Logic Unit (ALU)

The ALU performs all 8-bit arithmetic and logical operations:

TypeOperations
ArithmeticAddition, subtraction, increment, decrement, compare
LogicalAND OR, XOR, NOT (complement)
Shift/RotateLeft/right shifts and rotates through carry

The ALU takes operands from the accumulator and either a register, immediate data or memory (via internal bus), computes the result, stores it back in A and updates the flag register.

5.2 Instruction Register (IR)

  • Holds the opcode (operation code) of the instruction currently being executed
  • After fetch, the opcode byte from memory resides in IR
  • Connected to the instruction decoder

5.3 Instruction Decoder

  • Decodes the bit pattern in IR to generate specific control signals
  • Tells the timing unit which machine cycles to execute (fetch, memory read, I/O write, etc.)

Determines which registers participate and whether flags should be updated

Timing and Control Unit

The Timing and Control Unit generates all synchronization and bus control signals required for internal and external operation.

6.1 Control Signals (to external world)

SignalDescription
ALEAddress Latch Enable — HIGH during address phase of multiplexed bus
RD'Read strobe — active LOW; memory/I/O read
WR'Write strobe — active LOW; memory/I/O write

6.2 Status Signals

SignalDescription
IO/M'HIGH = I/O operation; LOW = memory operation
S1, S0Encode current machine cycle type (opcode fetch, read, write, halt)

6.3 S1/S0 Encoding (Status)

IO/M'S1S0Cycle type
011Opcode fetch
010Memory read
001Memory write
110I/O read
101I/O write
100Halt

6.4 Other Control Signals

SignalPurpose
HOLD / HLDADMA bus request and acknowledge
READYWait-state control — if LOW, CPU inserts wait states
RESET IN / RESET OUTSystem reset
INTA'Interrupt acknowledge

Three Buses

The 8085 communicates with memory and I/O through three buses:

7.1 Address Bus (16-bit, Unidirectional)

  • Carries memory or I/O addresses from CPU to memory/I/O devices
  • 16 lines → 64 KB address space
  • Higher order: A8–A15 (dedicated pins)
  • Lower order: A0–A7 multiplexed with data on AD0–AD7
  • Direction: CPU → Memory/I/O only (unidirectional)

7.2 Data Bus (8-bit, Bidirectional)

  • Carries data between CPU and memory/I/O
  • 8 lines (D0–D7 or AD0–AD7 when demultiplexed)
  • Bidirectional: Read loads data into CPU; write sends data out
  • Maximum unsigned value per transfer: 255 (FFH)

7.3 Control Bus (Mixed Direction)

  • Collection of control and status lines
  • Partly unidirectional (RD', WR', ALE from CPU) and partly bidirectional (HOLD/HLDA, READY, interrupt lines)
  • Coordinates when and what type of transfer occurs
 ┌─────────┐
 │ 8085 │
 │ CPU │
 └──┬──┬──┬─┘
 Address│ │ │Control
 (16) │ │ │(RD,WR,ALE,IO/M,S0,S1,...)
 │ │
 │ └── Data (8, bidirectional)
 │
 ▼
 ┌──────────────┐
 │ Memory / I/O │
 └──────────────┘

Continue learning

Related notes

Put this topic into timed practice

Open mock tests when you want full-exam pacing, or keep drilling in practice mode.