The processor uses several special purpose registers during the fetch, decode, execute cycle: the Program Counter (PC), Memory Address Register (MAR), Memory Data Register (MDR), Current Instruction Register (CIR) and the Accumulator (ACC).
(a)Complete the table by writing the correct register (PC, MAR, MDR or CIR) next to the function it performs.
i) Holds the address of the next instruction to be fetched.
ii) Holds the address currently being accessed in memory, for a read or a write.
iii) Holds data or an instruction that has just been fetched from memory, or is about to be written to memory.
iv) Holds the instruction that is currently being decoded or executed.(4)
(b)State the name of the register that holds the results of calculations performed by the ALU.(1)
(c)Explain why the Program Counter must be incremented during the fetch stage, even before the fetched instruction has been decoded.(3)
(Total for Question 3 is 8 marks)