Basic Architecture of 8085 Simulator:: GNUSIM8085
Basic Architecture of 8085 Simulator:: GNUSIM8085
It is a graphical simulator, debugger and assembler for the Intel 8085 microprocessor in Linux and windows.
8085 is pronounced as "eighty-eighty-five" microprocessor. It is an 8-bit microprocessor designed by Intel
in 1977 using NMOS technology.
Basic architecture of 8085 simulator: The architecture of the 8085 microprocessor mainly
includes the timing & control unit, Arithmetic and logic unit, decoder, and instruction register; interrupt
control, a register array, serial input/output control. The most important part of the microprocessor is the
central processing unit.
8085 consists of the following functional units −
Accumulator
It is an 8-bit register used to perform arithmetic, logical, I/O & LOAD/STORE operations. It is connected to
internal data bus & ALU.
As the name suggests, it performs arithmetic and logical operations like Addition, Subtraction, AND, OR,
etc. on 8-bit data.
There are 6 general purpose registers in 8085 processor, i.e. B, C, D, E, and H & L. Each register can hold
8-bit data.
These registers can work in pair to hold 16-bit data and their pairing combination is like B-C, D-E & H-L.
Program counter
It is a 16-bit register used to store the memory address location of the next instruction to be executed.
Microprocessor increments the program whenever an instruction is being executed, so that the program
counter points to the memory address of the next instruction that is going to be executed.
Stack pointer
It is also a 16-bit register works like stack, which is always incremented/decremented by 2 during push &
pop operations.
Temporary register
It is an 8-bit register, which holds the temporary data of arithmetic and logical operations.
Flag register
It is an 8-bit register having five 1-bit flip-flops, which holds either 0 or 1 depending upon the result stored
in the accumulator.
These are the set of 5 flip-flops −
Sign (S)
Zero (Z)
Auxiliary Carry (AC)
Parity (P)
Carry (C)
Instruction register and decoder
It is an 8-bit register. When an instruction is fetched from memory then it is stored in the Instruction
register. Instruction decoder decodes the information present in the Instruction register.
It provides timing and control signal to the microprocessor to perform operations. Following are the timing
and control signals, which control external and internal circuits −
Interrupt control
As the name suggests it controls the interrupts during a process. When a microprocessor is executing a main
program and whenever an interrupt occurs, the microprocessor shifts the control from the main program to
process the incoming request. After the request is completed, the control goes back to the main program.
There are 5 interrupt signals in 8085 microprocessor: INTR, RST 7.5, RST 6.5, RST 5.5, and TRAP.
It controls the serial data communication by using these two instructions: SID (Serial input data) and SOD
(Serial output data).
The content stored in the stack pointer and program counter is loaded into the address buffer and address-
data buffer to communicate with the CPU. The memory and I/O chips are connected to these buses; the
CPU can exchange the desired data with the memory and I/O chips.
Data bus carries the data to be stored. It is bidirectional, whereas address bus carries the location to where it
should be stored and it is unidirectional. It is used to transfer the data & Address I/O devices.
Working of 8085 Microprocessor
Now after having an idea about the functional units of the 8085 microprocessor, let us proceed
further to understand the operation of the 8085 microprocessor.
We already know that the function of a microprocessor is to execute instructions. Also, in order
to execute an instruction, it first needs to be fetched then decoded and then executed. And in
order to fetch an instruction, firstly the address of the instruction must be known.
The address of the instruction is present in the program counter. This address is then placed on
the 16-bit address bus and is then forwarded towards the memory. From the memory, the
instruction present at that particular memory location is fetched through the 8-bit data bus.
Here, in the this figure, we can clearly see that we have
combinely used data bus and address bus so as to reduce
the number of lines. As we know that at a particular time
the processor will access either the data bus or the address
bus.
However, after execution of first instruction, the next is fetched form the memory.
Now, this is all about fetching and decoding, now what about the execution of the instruction.
As we have also discussed in the functional unit that a flag register holds a sign, carry etc. related
information of the generated result.
After every instruction execution performed by the ALU, the status of the flag register gets
changed. So, ALU produces the result and its status simultaneously after each operation.
As we have already discussed that W and Z are the temporary registers but these are not
accessed by the programmer as both are used by the processor to hold the temporary value stored
by it.
So, this is all about the block diagram and working of 8085 microprocessor.