Here PC value is being stored in memory which is done when either CALL RETURN involved or there is Interrupt. As, we will have to come back to execute current instruction.
So, options (A), (B) are clearly incorrect.
Option (C) is incorrect because conditional branch does not require to save PC contents.
Option (D) is correct as it matches the generic Interrupt Cycle :
$$\text{Interrupt Cycle:}$$
$$\begin{array}{lcl}
t_1:&\text{MBR}&\leftarrow(\text{PC})\\
t_2:&\text{MAR}&\leftarrow(\text{save-address})\\
&\text{PC}&\leftarrow(\text{routine-address})\\
t_3:&\text{Memory}&\leftarrow(\text{MBR})\\
\end{array}$$