Let's define the purpose of each register listed:
(A) Instruction Register (IR): Holds the actual instruction that is currently being executed by the CPU.
(B) Memory Address Register (MAR): Holds the memory address of the data or instruction that is to be fetched from or written to memory.
(C) Program Counter (PC): Holds the memory address of the next instruction that is to be fetched and executed. After an instruction is fetched, the PC is automatically incremented to point to the next instruction in sequence.
(D) Stack Pointer (SP): Holds the address of the top of the stack in memory.
Therefore, the Program Counter (PC) is the register that holds the address of the next instruction to be executed.