假设我们在LC-3指令集中增加了Push和Pop两条指令。其中,Push Run的任务是寄存器n的内容压入栈,Pop Rn的任务则是将栈顶内容移出栈并赋值给Rn。下图所示是LC-3的8个寄存器和6个栈操作,请比较两个快照内容的差别,填充指令标记为(a)~(b)的内容。
| BEFORE | | | AFTER |
R0 | x0000 | PUSH R4 | R0 | x1111 |
R1 | x1111 | PUSH(a) | R1 | x1111 |
R2 | x2222 | POP(b) | R0 | x3333 |
R3 | x3333 | PUSH(c) | R3 | x3333 |
R4 | x4444 | POP R2 | R4 | x4444 |
R5 | x5555 | POP (d) | R5 | x5555 |
R6 | x6666 | | R6 | x6666 |
R7 | x7777 | | R7 | x4444 |