Consider the following sequence of micro-operations.
MBR ← PC MAR ← X PC ← Y Memory ← MBR
Which one of the following is a possible operation performed by this sequence?
(A) Instruction fetch
(B) Operand fetch
(C) Conditional branch
(D) Initiation of interrupt service
Explanation: MBR – Memory Buffer Register ( that stores the data being transferred to and from the immediate access store)
MAR – Memory Address Register ( that holds the memory location of data that needs to be accessed.)
PC – Program Counter ( It contains the address of the instruction being executed at the current time )
The 1st instruction places the value of PC into MBR
The 2nd instruction places an address X into MAR.
The 3rd instruction places an address Y into PC.
The 4th instruction places the value of MBR ( which was the old PC value) into Memory.
Now it can be seen from the 1st and the 4th instructions, that the control flow was not sequential and the value of PC was stored in the memory, so that the control can again come back to the address where it left the execution.
This behavior is seen in the case of interrupt handling. And here X can be the address of the location in the memory which contains the beginning address of Interrupt service routine.
And Y can be the beginning address of Interrupt service routine.
In case of conditional branch (as for option C ) only PC is updated with the target address and there is no need to store the old PC value into the memory.
And in the case of Instruction fetch and operand fetch ( as for option A and B), PC value is not stored anywhere else.
Hence option D.
Quiz of this Question