8085 Microprocessor Architecture: Functional Units, Registers, Buses and Interrupts
8085 Microprocessor Architecture: Complete Beginner-Friendly Explanation
Search Description: Learn 8085 microprocessor architecture in simple words. Understand ALU, accumulator, registers, program counter, stack pointer, buses, flags, interrupts and timing control.
In simple words: The 8085 microprocessor is an 8-bit CPU developed by Intel. It receives instructions from memory, processes data using its internal units, and communicates with memory and input/output devices through buses.
Introduction to 8085 Microprocessor
The 8085 microprocessor is one of the most popular 8-bit microprocessors used for learning the basic architecture of a computer system. It was designed by Intel in 1977 using NMOS technology. The name 8085 is commonly pronounced as “eighty eighty-five”.
It is called an 8-bit microprocessor because it can process 8-bit data at a time. However, it has a 16-bit address bus, which means it can access up to 64 KB of memory. Even though it is an old processor, it is still very important for students because it explains the foundation of modern computer architecture.
The 8085 microprocessor works as the central processing unit of a microcomputer system. It performs arithmetic operations, logical operations, data transfer, instruction execution, interrupt handling and communication with memory and input/output devices.
Main Features of 8085 Microprocessor
| Feature | Description |
|---|---|
| Processor type | 8-bit microprocessor |
| Data bus | 8-bit bidirectional data bus |
| Address bus | 16-bit address bus |
| Memory addressing capacity | 216 = 65,536 memory locations = 64 KB |
| Power supply | +5 V DC |
| Clock frequency | Commonly 3.2 MHz |
| General-purpose registers | B, C, D, E, H and L |
| Special registers | Accumulator, Program Counter and Stack Pointer |
Important point: The 8085 has an 8-bit data bus but a 16-bit address bus. This means it processes 8-bit data at one time but can select 65,536 different memory locations.
Functional Units of 8085 Microprocessor Architecture
The architecture of 8085 consists of different internal blocks that work together to execute instructions. These blocks include the accumulator, ALU, registers, program counter, stack pointer, instruction register, decoder, timing and control unit, interrupt control and serial input/output control.
1. Accumulator
The accumulator is an 8-bit register directly connected with the ALU. It is one of the most important registers in the 8085 microprocessor. Most arithmetic and logical operations are performed using the accumulator.
For example, during addition, one number is usually stored in the accumulator and the other number is taken from a register or memory location. After the operation, the result is stored back in the accumulator.
2. Arithmetic and Logic Unit (ALU)
The Arithmetic and Logic Unit performs mathematical and logical operations on 8-bit data. It can perform operations such as addition, subtraction, increment, decrement, AND, OR, XOR, compare and complement.
The ALU does not work independently. It receives data from registers or memory and stores the result mainly in the accumulator. After each operation, the flag register is updated according to the result.
3. General-Purpose Registers
The 8085 has six general-purpose 8-bit registers:
- B
- C
- D
- E
- H
- L
These registers are used to temporarily store data during program execution. They can also be combined in pairs to store 16-bit data. The common register pairs are:
- BC pair
- DE pair
- HL pair
The HL register pair is often used as a memory pointer because it can store a 16-bit memory address.
4. Program Counter (PC)
The Program Counter is a 16-bit register that stores the address of the next instruction to be executed. When the processor fetches an instruction from memory, the program counter automatically increases so that it points to the next instruction.
This makes the execution of a program sequential. If a jump, call or branch instruction occurs, the value of the program counter changes according to the new instruction address.
5. Stack Pointer (SP)
The Stack Pointer is also a 16-bit register. It points to the top location of the stack in memory. The stack is used for temporary storage during subroutine calls, interrupt handling, PUSH operations and POP operations.
In 8085, the stack grows in the downward direction. During a PUSH operation, the stack pointer is decremented. During a POP operation, the stack pointer is incremented.
6. Temporary Register
The temporary register is an internal 8-bit register used by the processor while performing arithmetic and logical operations. It is not directly accessible by the programmer. It helps the ALU during internal processing.
7. Instruction Register and Instruction Decoder
When an instruction is fetched from memory, it is first stored in the instruction register. After that, the instruction decoder decodes the instruction and tells the control unit what operation needs to be performed.
For example, if the instruction is related to addition, the decoder activates the ALU and required registers. If the instruction is related to memory reading, it activates the proper memory control signals.
8. Timing and Control Unit
The timing and control unit generates control signals required for the proper operation of the microprocessor. It controls the flow of data between the microprocessor, memory and I/O devices.
Important control and status signals include:
- RD̅: Read signal
- WR̅: Write signal
- ALE: Address Latch Enable
- READY: Used to synchronize slow devices
- IO/M̅: Indicates whether the operation is related to I/O or memory
- S0 and S1: Status signals
Registers in 8085 Microprocessor
Registers are small and fast storage locations inside the microprocessor. They are used for holding data, addresses and intermediate results during instruction execution.
| Register | Size | Function |
|---|---|---|
| Accumulator | 8-bit | Stores data for arithmetic and logical operations |
| B, C, D, E, H, L | 8-bit each | General-purpose data storage |
| BC, DE, HL | 16-bit pairs | Used to store 16-bit data or address |
| Program Counter | 16-bit | Stores address of next instruction |
| Stack Pointer | 16-bit | Stores address of top of stack |
| Flag Register | 8-bit | Shows the status of ALU result |
Flag Register in 8085
The flag register is an 8-bit register, but only five flags are used in the 8085 microprocessor. These flags are automatically set or reset according to the result of arithmetic and logical operations.
| Flag | Full Form | Meaning |
|---|---|---|
| S | Sign Flag | Set when the result is negative |
| Z | Zero Flag | Set when the result is zero |
| AC | Auxiliary Carry Flag | Used in BCD arithmetic |
| P | Parity Flag | Set when the result has even parity |
| CY | Carry Flag | Set when carry is generated |
Example: If two 8-bit numbers are added and the result becomes larger than 255, the carry flag is set. This helps the processor handle multi-byte arithmetic operations.
Address Bus, Data Bus and Control Bus
The 8085 microprocessor communicates with memory and I/O devices through buses. A bus is a group of conducting lines used to transfer information.
Address Bus
The address bus carries the address of memory or I/O location. In 8085, the address bus is 16-bit wide. Therefore, it can address 64 KB memory. The address bus is unidirectional because address information flows only from the processor to memory or I/O devices.
Data Bus
The data bus carries actual data between the microprocessor, memory and I/O devices. In 8085, the data bus is 8-bit wide and bidirectional. This means data can flow from the processor to memory or from memory to the processor.
Control Bus
The control bus carries control signals such as read, write, interrupt, reset and status signals. These signals coordinate the operation of the complete system.
| Bus | Width in 8085 | Direction | Purpose |
|---|---|---|---|
| Address Bus | 16-bit | Unidirectional | Selects memory or I/O location |
| Data Bus | 8-bit | Bidirectional | Transfers data |
| Control Bus | Various control lines | Mostly fixed direction per signal | Controls read, write and timing operations |
Interrupts in 8085 Microprocessor
An interrupt is a signal that temporarily stops the normal execution of a program and asks the processor to execute another important task. After completing the interrupt service routine, the processor returns to the main program.
The 8085 has five hardware interrupt signals:
- TRAP: Highest priority, non-maskable interrupt
- RST 7.5: Maskable interrupt with high priority
- RST 6.5: Maskable interrupt
- RST 5.5: Maskable interrupt
- INTR: General-purpose interrupt
| Interrupt | Type | Priority |
|---|---|---|
| TRAP | Non-maskable | Highest |
| RST 7.5 | Maskable | Second |
| RST 6.5 | Maskable | Third |
| RST 5.5 | Maskable | Fourth |
| INTR | Maskable | Lowest |
Serial Input and Output Control
The 8085 microprocessor supports serial communication using two pins:
- SID: Serial Input Data
- SOD: Serial Output Data
Serial input/output is useful when data needs to be transferred bit by bit. In 8085, serial communication is controlled using special instructions such as SIM and RIM.
Working of 8085 Microprocessor in Simple Steps
The working of the 8085 microprocessor can be understood through the instruction cycle:
- The program counter gives the address of the next instruction.
- The processor sends this address to memory through the address bus.
- The instruction is fetched from memory through the data bus.
- The instruction is stored in the instruction register.
- The instruction decoder decodes the instruction.
- The control unit generates required control signals.
- The ALU or registers perform the required operation.
- The result is stored in the accumulator, register or memory.
Applications of 8085 Microprocessor
Although modern devices use advanced processors and microcontrollers, the 8085 microprocessor is still useful for understanding basic computer organization. It was used in many small control and embedded applications.
- Educational trainer kits
- Basic control systems
- Small automation systems
- Instrumentation systems
- Traffic control systems
- Simple data processing systems
- Industrial training and laboratory experiments
Why 8085 is Important for Students?
The 8085 microprocessor is important because it explains the basic working of a computer system in a simple way. Students can learn how instructions are fetched, decoded and executed. They can also understand how memory, registers, buses, interrupts and I/O devices work together.
Once the architecture of 8085 is clear, it becomes easier to understand advanced processors, microcontrollers, embedded systems and computer architecture.
Key Takeaways
- 8085 is an 8-bit microprocessor developed by Intel.
- It has an 8-bit data bus and a 16-bit address bus.
- It can address up to 64 KB memory.
- The ALU performs arithmetic and logical operations.
- The accumulator stores most ALU results.
- The program counter stores the address of the next instruction.
- The stack pointer points to the top of the stack.
- The flag register shows the status of arithmetic and logical results.
- Interrupts help the processor respond to urgent external events.
Frequently Asked Questions
What is 8085 microprocessor?
8085 is an 8-bit microprocessor developed by Intel. It is used to process 8-bit data and control memory and input/output devices.
Why is 8085 called an 8-bit microprocessor?
It is called an 8-bit microprocessor because its data bus is 8-bit wide and it processes 8-bit data at a time.
How much memory can 8085 address?
The 8085 has a 16-bit address bus. Therefore, it can address 216 memory locations, which is equal to 64 KB memory.
What is the function of accumulator in 8085?
The accumulator stores data before and after arithmetic and logical operations. Most ALU results are stored in the accumulator.
What are the five flags in 8085?
The five flags are Sign flag, Zero flag, Auxiliary Carry flag, Parity flag and Carry flag.
What is the use of program counter?
The program counter stores the address of the next instruction to be executed by the processor.
What is the use of stack pointer?
The stack pointer stores the address of the top of the stack. It is used during PUSH, POP, CALL, RET and interrupt operations.
Conclusion
The 8085 microprocessor architecture is a very important topic for beginners in electronics, computer organization and embedded systems. It helps us understand how a processor communicates with memory, executes instructions, performs calculations and controls external devices.
Even though modern processors are much faster and more complex, their basic working is still based on the same fundamental concepts such as registers, ALU, buses, memory, control signals and interrupts. Therefore, learning 8085 architecture is a strong first step toward understanding modern digital systems.
No comments