Understanding the data flow from memory to microprocessor and the instruction executed by the microprocessor
The
instructions which are to be executed by the microprocessor are first
stored in the memory of the processor and then executed. But the processor does
not execute the instructions directly. It reads the instruction byte by byte
and then executes it.
Before understanding
instruction execution and data flow, there is a necessity for us to learn a new
term, OPCODE.
What is an Opcode?
Opcode is nothing but the machine language
instruction which denotes the microprocessor about what operation should be
performed on the specific data. Microprocessor
converts the instruction into suitable machine language, so that it can
understand the operation to be performed and executes it.
Consider MVI A, 18H.
When the above
instruction is to be executed, the microprocessor gets the Opcode for MVI A and
performs the necessary operation on the data which is 18H in this case. The
Opcode for MVI A is 3EH. So the microprocessor first reads this Opcode from the
instruction and then performs the operation specified by Opcode over the data
given.
Now let us assume we
want to store the above instruction in a specific address say 5500H. We know
that in 8085 processor only one byte can be stored in each address location.
Therefore the Opcode 3EH is stored at the location 5500H and the data 18H
is stored at the next location 5501H.
Now for execution of
this instruction the processor has to send the address to the memory for
reading. Then the MEMR’ signal is activated. As soon as this signal is
activated the memory places the Opcode byte (3EH) on the data bus.
The above process is
considered as a single cycle and is called the OPCODE FETCH CYCLE. The period
during which the Opcode is fetched from address to the data bus is called as
Opcode fetch cycle.
A microprocessor by
default knows that the first byte which is under execution is always Opcode. The internal data bus sends the Opcode to the
instruction decoder. The instruction decoder decodes the Opcode and identifies
it as MVI A instruction. As soon as this information is obtained, the
microprocessor searches for the data on which this operation should be
performed.
To find the data for
performing the operation, the microprocessor instructs the timing and control
unit to generate a proper timing signal to obtain the data. As a result of the
timing signal, the program counter is increased by 1. So the address bus moves
from 5500H to 5501H. Now we know that the data 18H is placed at 5501H. So when
the address bus is placed at 5501H, it identifies the data and the MEMR’ signal
is activated. After the activation of this signal the data is placed on the
internal address bus and then it is moved to the accumulator. Then the MVI A
operation is performed on the data 18H and the result is sent to the respective
registers.
This process of placing
the address and reading the data is considered as a single cycle and this cycle
is called Memory Read cycle. In general these cycles are called as machine
cycles.
Comments
Post a Comment