8085 microprocessor is an 8-bit parallel central processing unit (CPU). The internal architecture of the 8085 microprocessor consists of an array of registers, encoder/decoder, arithmetic logic unit, and timing and control circuits. An internal data bus links all of these components inside the processor.
Block Diagram of Internal Architecture of 8085 Microprocessor
The block diagram below shows the internal architecture of the 8085 microprocessor.
ALU (Arithmetic and Logic Unit):
ALU performs the computation functions and it includes accumulator, temporary registers, arithmetic and logic circuits, and five flags.
The temporary register holds the data temporarily during the arithmetic or logical operation of the processor. Accumulator stores the final result of the arithmetic or logical operations.
The flags are the set of flip-flops. When the processor performs some operation the flags are set or reset according to the result of the operation.
Accumulator (register A):
The accumulator is an 8-bit register and also it is a part of ALU. This register can store 8 bits of data and is used during the arithmetic and logic operation of the processor.
As accumulator register is used in arithmetic and logical operation of the process, 8085 microprocessor is also termed as an accumulator-based microprocessor. The data to be read from the input port is first moved in the accumulator or register ‘A’ and also the data to be sent to the output port is first stored in the accumulator.
Temporary Registers (W and Z):
W and Z are the temporary registers. These are 8-bit processors. Temporary registers are not accessible to the programmer. The processor stores data for a brief moment in these registers during the program execution.
Instruction Register (IR):
IR is also an 8-bit register. Like temporary registers, the IR register is also not accessible to the programmer.
The operation codes of the instructions are first received by the IR. Then IR passes these operation codes or the opcodes to the instruction decoder which then decodes the information and finally, the microprocessor can know the type of operation which it has to perform.
Register Array (Register B, C, D, and E):
B, C, D, and E are the register array which are of 8 bits. These registers are available for the programmers during the programming of the 8085 microprocessor. The programmer can store data in these registers during program executions.
We can use these register arrays as 8-bit registers or in pairs such as BC, DE as 16-bit registers.
During program execution, we can add or transfer the data to and from the register. We can combine the contents of these registers with the accumulator’s content.
Register H and L:
H and L are 8 bits registers. We can use these registers in the same way as that of the registers B, C, D, and E.
Stack Pointer (SP):
SP or stack pointer is a 16-bit register that works as a memory pointer. This register points to the stack which is the location in the R/W memory.
Program Counter (PC):
To sequence the execution of the instructions, the microprocessor uses a PC register. PC points to the memory address from which the next byte of information is to be fetched.
Flags registers consist of a combination of five flip-flops. Each of these flip-flops will hold the status of different states of the arithmetic and logical operations performed by the microprocessor.
The figure below shows the flags of the 8085 microprocessor.
To make further decisions in the program we can use the status of the flag register.
The flags are described in details below:
Carry Set (1) if the last operation generates carry otherwise reset (0).
Zero: If the result of the last operation of the processor is zero then this flag is set (1). Otherwise, the flag is reset (0).
Sign: Set (1) if the MSB of the result of the last operation is 1 (as MSB=1 signifies negative), otherwise reset (0).
Parity: Set (1) if the result of the last operation has even numbers of 1’s (i.e. even parity) otherwise reset (0).
Auxiliary Carry: Set (1) if the last operation yield carries from the lower half-word otherwise reset (0).
Timing and Control Unit:
The timing unit synchronizes the operation of the microprocessor with the clock. The control unit is responsible for generating the control signals necessary for the microprocessor for communication between the microprocessor and the peripherals.
RD and WR are the control signals which indicate the availability of the data on the data bus.
To handle the interrupt in the microprocessor there are various interrupt control signals such as INTR, RST 5.5, RST 6.5, RST 7.5, and TRAP.
Serial I/O Controls:
For serial data transmission, SID and SSIO are two serial I/O control signals available in the 8085 microprocessors.