The internal architecture (Functional Block Diagram of 8085 Microprocessor) is shown in figure.
The
following are the functional blocks in the 8085 Microprocessor.
1.
Accumulator
2.
Temporary register
3.
Arithmetic and Logic Unit (ALU)
4. Flag
register
5.
Instruction Register
6.
Instruction Decoder and Machine cycle encoder
7. General
purpose registers
8. Stack
Pointer
9. Program
Counter
10.
Incrementer / Decrementer
11. Timing
and Control unit
12.
Interrupt control
13. Serial
I/O control
14. Address
buffer and Address / Data buffer
1.
Accumulator (A-register): It is an 8-bit register. It is associated with
ALU. The accumulator is also called A-register. During the arithmetic / logic
operations, one of the operands is available in Accumulator. The result of the
arithmetic / logic operations is also stored in the Accumulator.
2.
Temporary (TEMP) register: It is an 8-bit register. It is also associated
with ALU. This register is used to hold one of the data (from memory or general-purpose
registers) during an arithmetic / logic operation.
3.
Arithmetic and Logic Unit (ALU): The Arithmetic and Logic Unit
includes Accumulator, Temporary register, arithmetic and logic circuits and
flag register. The ALU can perform arithmetic (such as addition and
subtraction) and logic operations (such as AND, OR and EX-OR) on 8-bit data. It
receives the data from accumulator and or TEMP register. The result is stored
in the accumulator. The conditions of the result (such as carry, zero) are
indicated in the flags.
4. Flag
register: It is an 8-bit register. But only five bits are used. The
flag positions in the flag register are shown below.
Flag register of 8085: The flags are affected by the arithmetic and logic operations in the ALU. The flag register is also known as Status register or Condition code register. There are five flags namely Sign (S) flag, Zero (Z) flag, Auxiliary Carry (AC) flag, Parity (P) flag and Carry (CY) flag.
·
Sign (S) flag: Sign flag
is set (1) if the bit D7 of the result in the accumulator is 1, otherwise it is
reset (0). This flag is set when the result is negative. This flag is used only
for signed numbers.
·
Zero (Z) flag: Zero flag
is set (1) if the result in the accumulator is zero, otherwise it is reset (0).
·
Auxiliary Carry (AC):
Auxiliary Carry flag is set (1) if there is a carry from bit position D3of result
in the accumulator, otherwise it is reset (0). This flag is used for BCD
operations.
·
Parity (P) flag: Parity
flag is set (1) if the result in the accumulator has even number of 1s,
otherwise it is reset (0).
·
Carry (CY) flag: Carry
flag is set (1) if the result of an arithmetic operation results in a carry
from bit position D7, otherwise it is reset (0). This flag is also used to
indicate a borrow condition during subtraction operations.
5. Instruction register: When an
instruction is fetched from memory, it is stored in the Instruction register.
It is an 8-bit register. This resister cannot be used in the programs.
6.
Instruction Decoder and Machine cycle encoding: This unit decodes
the instruction stored in the Instruction register. It determines the nature of
the instruction and establishes the sequence of events to be followed by the
Timing and control unit.
7.
General purpose registers: There are six 8-bit general purpose registers
namely B, C, D, E, H and L registers. B and C registers are combined together
as BC register pair for 16-bit operations. Similarly D and E registers can be
used as DE resister pair and H and L as HL register pair. The HL register pair
is also used as memory pointer (M-register) for storing 16-bit address in some
instructions.There are two more 8-bit temporary registers W and Z. These
registers are used to hold data during the execution of some instructions. W
and Z registers cannot be used in programs.
8. Stack
Pointer (SP): Stack is a portion of memory (RAM) used as FILO (First In
Last Out) buffer. This is mainly used during subroutine operations. Stack
Pointer is a 16-bit register used as a memory pointer (16-bit address) for
denoting the stack position in memory. The Stack pointer is decremented each
time when data is loaded into the stack and incremented when data is retrieved
from the stack. Stack pointer always points to the top of the stack memory.
9.
Program Counter (PC): The Program Counter (PC) is a 16-bit register. It is used to
point the address of the next instruction to be fetched from the memory. When
one instruction is fetched from memory, PC is automatically incremented to
point out the next instruction.
10.
Incrementer / Decrementer: This unit is used to increment or decrement the
contents of the 16-bit registers.
11.
Timing and Control unit: The internal clock generator is available in this
unit.This unit has the micro programs for all the instructions to carry out the
micro steps required in completing the instructions. This unit receives signals
from the Instruction decoder and Machine cycle encoding unit and generates
control signals according to the micro-program for the instruction.
12.
Interrupt control: There are five hardware interrupts available in 8085
Microprocessor namely TRAP, RST 7.5, RST 6.5, RST 5.5 and INTR for interfacing
the peripherals with the microprocessor. These interrupts are handled by the
Interrupt control unit. INT A signal is generated by the Interrupt control unit
as an acknowledgement for an interrupting device. If two or more interrupts
occur at the same time, service is given according to the priority basis.
13.
Serial I/O control: Serial data is transmitted to the peripherals through SOD pin
and received through the SID pin. The SOD and SID pins are handled by the Serial
I/O control unit using the SIM and RIM instructions.
14.
Address buffer and Address / Data buffer: The Address buffer is an 8-bit
unidirectional buffer from which the higher order address bits A8 – A15 leaves
the microprocessor to the memory and peripherals. The Address / Data buffer is
an 8-bit bidirectional buffer used for sending the lower order address bits A0
– A7 and sending and receiving the data bits D0 – D7 to the memory and
peripherals.