堆栈计算机 零地址指令
在**堆栈计算机(Stack Machine)**中,零地址指令(Zero-address instruction)的两个操作数通常是从栈顶弹出的两个操作数,也就是说:
答案:
操作数 1 和操作数 2 均来自操作数栈的栈顶(即“弹出”)
解释:
- 零地址指令不显式写操作数地址,而是默认使用栈顶元素。
- 以表达式
A + B
为例,其执行过程如下:
PUSH A ; A 入栈
PUSH B ; B 入栈
ADD ; 弹出 B 和 A,计算 A+B,再将结果压栈
-
在
ADD
指令中:- 第一个操作数:先弹出的
B
(栈顶) - 第二个操作数:后弹出的
A
- 然后执行
A + B
,并将结果压回栈顶
- 第一个操作数:先弹出的
总结:
在零地址指令中,两个操作数都是隐式从栈中获取的,无需显式指定地址,执行指令时会:
- 从操作数栈顶弹出两个值作为输入,
- 计算结果后再将结果压回栈顶。