Consider the following data path of a simple non-pipelined CPU. The registers $A, B$, $A_{1},A_{2}, \textsf{MDR},$ the $\textsf{bus}$ and the $\textsf{ALU}$ are $8$-$bit$ wide. $\textsf{SP}$ and $\textsf{MAR}$ are $16$-$bit$ registers. The $\textsf{MUX}$ is of size $8 \times (2:1)$ and the $\textsf{DEMUX}$ is of size $8 \times (1:2)$. Each memory operation takes $2$ $\textsf{CPU}$ clock cycles and uses $\textsf{MAR}$ (Memory Address Register) and $\textsf{MDR}$ (Memory Date Register). $\textsf{SP}$ can be decremented locally.
The $\textsf{CPU}$ instruction "push r
" where, $r =$ $A$ or $B$ has the specification
- $M[SP] ← r $
- $SP ← SP - 1$
How many $\textsf{CPU}$ clock cycles are required to execute the "push r
" instruction?
- $2$
- $3$
- $4$
- $5$