Developed by Intel Corporation in the late 1970s, the 8085 microprocessor revolutionized the field, paving the way for countless advancements in technology. In this article, we delve into the architecture, features, and impact of the 8085 microprocessor, showcasing important points such as 8085 microprocessor architecture, 8085 microprocessor pin diagram, 8085 microprocessor instruction set, functional unit and more.
The 8085 microprocessor is an 8-bit microprocessor that was introduced by Intel in 1976. It is part of the 8085 family of microprocessors, which includes the 8080, 8085A, and other variants. The 8085 microprocessor became very popular and widely used in various applications, including personal computers, embedded systems, industrial control systems, and more.
Functional Units of 8085 Microprocessor
The 8085 microprocessor consists of several functional units that work together to perform various tasks. These units include the following:
- Arithmetic Logic Unit (ALU)
The ALU is responsible for performing arithmetic and logical operations on data. It can perform operations such as addition, subtraction, logical AND, logical OR, and more. The ALU operates on 8-bit data and provides flags to indicate conditions such as zero, carry, sign, and parity.
- Control Unit (CU)
The Control Unit coordinates and controls the activities of the other functional units within the microprocessor. It generates timing and control signals to synchronize the execution of instructions and manage data transfer between different units.
- Instruction Decoder
The Instruction Decoder decodes the instructions fetched from memory. It determines the type of instruction being executed and generates control signals accordingly. The decoded instructions guide the microprocessor in executing the appropriate operations.
- Registers
The 8085 microprocessor has several registers that serve different purposes:
Accumulator (A): The Accumulator is an 8-bit register used for storing intermediate results during arithmetic and logical operations.
General Purpose Registers (B, C, D, E, H, L): These are six 8-bit registers that can be used for various purposes, including storing data and performing operations.
Special Purpose Registers (SP, PC): The Stack Pointer (SP) is used to manage the stack in memory and the program counter (PC) keeps track of the memory address of the following instruction for fetching.
- Address and Data Bus
The microprocessor uses a bidirectional address bus to specify the memory location or I/O device it wants to access. Similarly, it employs an 8-bit bidirectional data bus for transferring data between the microprocessor and memory or I/O devices.
- Timing and Control Unit
The Timing and Control Unit generates the necessary timing signals to synchronize the activities of the microprocessor. It produces signals such as RD (Read), WR (Write), and various control signals required for instruction execution.
- Interrupt Control Unit
The Interrupt Control Unit manages interrupts in the 8085 microprocessor. It handles external interrupt signals and facilitates interrupt-driven operations by interrupting the normal execution flow of the program and branching to specific interrupt service routines.
- Memory Interface
The Memory Interface connects the microprocessor to the memory system. It manages the address and data transfers between the microprocessor and the memory chips, including Read and Write operations.
8085 Microprocessor Architecture Diagram
The 8085 microprocessor architecture diagram is as follows:
8085 Microprocessor Architecture
The 8085 microprocessor architecture has the following essential components:
- Accumulator (A):
The accumulator is an 8-bit register used for arithmetic and logical operations. It holds one of the operands during calculations and stores the result.
- General-Purpose Registers (B, C, D, E, H, L):
The 8085 microprocessor has six general-purpose registers, each of which is 8 bits. These registers can be used for data manipulation and storage.
- Stack Pointer (SP):
The stack pointer is a 16-bit register that points to the top of the stack. The stack is used to store return addresses during subroutine calls, as well as local variables and other data.
- Program Counter (PC):
Program counter is a 16-bit register that holds the memory address of the following instruction for fetching and executing. It automatically increments after each instruction fetch, allowing programs to execute the next instruction quickly.
- Flag Register (F):
The flag register is a 8-bit register that contains several flags that indicate the status of certain conditions after arithmetic and logical operations. The flags are as follows:
Carry Flag (C): Set if there is a carry or borrow during arithmetic operations.
Zero Flag (Z): Set if the result of an operation is zero.
Sign Flag (S): Set if the result of an operation is negative (MSB set).
Parity Flag (P): Set if the result of an operation has even parity.
Auxiliary Carry Flag (AC): Set if there is a carry or borrow from bit 3 to bit 4 during arithmetic operations.
- Address and Data Buses:
The 8085 microprocessor has a 16-bit address bus, allowing it to address up to 64 KB of memory. It also has an 8-bit data bus for transferring data between the microprocessor and memory or I/O devices.
- Instruction Decoder and Control Unit:
The instruction decoder interprets the fetched instructions and generates control signals to execute the corresponding operation. The control unit coordinates the timing and sequencing of instructions and manages the flow of data and control signals within the microprocessor.
- Interrupts:
The 8085 microprocessor supports 5 hardware interrupts as follows:
- INTR
- RST 5.5
- RST 6.5
- RST 7.5
- TRAP
Interrupts allow the microprocessor to respond to external events and handle them in a prioritized manner.
- Input/Output (I/O) Ports:
The 8085 microprocessor has a limited number of I/O pins. It uses I/O ports to connect with external devices for input and output operations.
8085 Microprocessor Pin Diagram
Here’s a brief description of some of the important pins in the 8085 microprocessor pin diagram:
- Vcc: Power supply voltage pin (+5V).
- A0-A15: Address bus pins for transmitting the memory address during read and write operations.
- AD0-AD7: Data bus pins for transmitting data between the microprocessor and external memory or I/O devices.
- RD: Read control signal, activated by the microprocessor to initiate a read operation.
- WR: Write control signal, activated by the microprocessor to initiate a write operation.
- /RESET: Active-low reset input, used to reset the microprocessor to its initial state.
- /INT: Active-low interrupt input, used for external hardware interrupts.
- IO/M: Input/output and memory control signal, used to distinguish between I/O and memory operations.
- /IORQ: Active-low input/output request signal, indicating an I/O operation.
- /MREQ: Active-low memory request signal, indicating a memory operation.
- S0 and S1: Status output pins that indicate the current operating mode of the microprocessor.
- HLDA: Hold acknowledge output, used to indicate that the microprocessor has recognized the HOLD request.
- HOLD: Hold input, used to halt the microprocessor’s operation temporarily.
- The 8085 microprocessor pin diagram provides a visual representation of the connections and functionalities of the different pins on the 8085 microprocessor.
Addressing Modes in 8085 Microprocessor
The 8085 microprocessor uses various addressing modes to specify the location of data or instructions during program execution. These addressing modes determine how operands are accessed and fetched by the processor. Each addressing mode provides flexibility in accessing and manipulating data and instructions, allowing for efficient program execution.
Here are the commonly used addressing modes in the 8085 microprocessor:
- Immediate Addressing Mode:
In this mode, the operand is directly specified in the instruction itself.
- Register Addressing Mode:
In this mode, the operand is specified in one of the registers of the microprocessor.
- Direct Addressing Mode:
In this mode, the operand is specified by a memory address directly.
- Indirect Addressing Mode:
In this mode, the operand is specified indirectly through a register pair, usually HL. The contents of the specified register pair act as a memory address.
- Register Indirect with Displacement Addressing Mode:
In this mode, the operand is specified by adding an 8-bit signed displacement value to the contents of a register pair. The resulting sum is treated as a memory address.
- Immediate Indirect Addressing Mode:
In this mode, the operand is specified indirectly through an immediate value. The immediate value is added to the program counter (PC), and the resulting sum acts as the memory address.
8085 Microprocessor Instruction Format
The 8085 microprocessor follows a specific instruction format for executing instructions. The general instruction format consists of one to three bytes, depending on the instruction type. Here is the breakdown of the 8085 instruction format:
- Opcode (1 byte):
The opcode specifies the operation to be performed by the microprocessor. It represents the instruction mnemonic or code. Examples of opcodes are MOV, ADD, SUB, JMP, etc.
- Operand(s) (0 to 2 bytes):
The operands provide the necessary data or addresses for the instruction. The number of operands and their sizes depend on the specific instruction. Some instructions do not require any operands, while others may have one or two operands. The operands can be immediate values, registers, memory addresses, or combinations thereof.
Operations on 8085 Microprocessor
The 8085 microprocessor supports a wide range of operations. Here are some of the commonly used operations on the 8085 microprocessor:
- Data Transfer Operations
- Arithmetic Operations
- Logical Operations
- Branching Operations
- I/O Operations
- Stack Operations
8085 Microprocessor Instruction Set
The 8085 microprocessor has a comprehensive instruction set that covers a wide range of operations. Here is an overview of the 8085 microprocessor instruction set categories and some representative instructions within each category:
- Data Transfer Instructions:
MOV: Move data between registers, memory, and I/O ports.
MVI: Move immediate data into a register or memory location.
LXI: Load immediate 16-bit data into a register pair.
LDA, STA: Load and store data between the accumulator and memory.
- Arithmetic Instructions:
ADD, ADC: Add data to the accumulator with or without carry.
SUB, SBB: Subtract data from the accumulator with or without borrow.
INR, DCR: Increment or decrement the value of a register or memory location.
DAD: Double the value of a register pair.
- Logical Instructions:
AND, ORA, XOR: Perform bitwise logical operations on the accumulator with data from registers, memory, or immediate values.
CMP: Compare the accumulator with data from registers, memory, or immediate values.
- Branching Instructions:
JMP: Unconditional jump to a specific memory address.
JC, JNC, JP, JM, JZ, JNZ: Conditional jumps based on the status of the carry flag (C), parity flag (P), sign flag (M), zero flag (Z), etc.
CALL: Call a subroutine at a specific memory address.
RET: Return from a subroutine.
- Stack Instructions:
PUSH, POP: Push and pop data onto and from the stack.
XTHL: Exchange stack top with HL register pair.
- I/O Instructions:
IN, OUT: Input and output data from/to I/O ports.
EI, DI: Enable and disable interrupts.
- Special Instructions:
HLT: Halt the microprocessor.
NOP: No operation.
The 8085 microprocessor stands as a remarkable milestone in the history of computing, showcasing the ingenuity and innovation of its creators. Its working principles and architecture have played a crucial role in shaping the landscape of modern technology.
Frequently Asked Questions on 8085 Microprocessor
What is an 8085 microprocessor?
The 8085 microprocessor is an 8-bit microprocessor developed by Intel in the 1970s. It was widely used in early personal computers and embedded systems.
What is the difference between 8085 and 8086?
The main difference between the 8085 and 8086 microprocessors is their architecture and data bus width. The 8085 is an 8-bit microprocessor, while the 8086 is a 16-bit microprocessor.
Is 8085 RISC or CISC?
The 8085 microprocessor is considered a CISC (Complex Instruction Set Computer) architecture, as it supports a large number of complex instructions with varying formats and lengths.
Is the microprocessor 8085 16-bit?
Although microprocessor 8085 is a 8-bit processor. But it has a few operations of 16-bit processor.