我有以下代码:
ORG 100
LOOP, Load X
Add Z
Store X
Load Y
Skipcond 400
Jump Q
Subt Z
Store Y
Jump LOOP
Q, Output X
Halt
X, Dec 0
Y, Dec 10
Z, Dec 1
现在,如果我理解正确的话,它在某种程度上等同于以下 Python 代码:
x = 0
y = 10
z = 1
while True:
x += z
if y > 0:
y -= 1
else:
exit(0)
如果是这种情况,我很困惑为什么在完成循环过程后,MARIE 中的 X = 10 和 Python 中的 X = 11。根据我对 MARIE 代码的理解,skipcond 400 相当于 if y > 0。如果是这种情况,那么当 x = 10,y = 1 时,它仍然会通过 skipcond 从 y 中减去 1,因此重新启动循环并再次将 1 添加到 x 意味着当循环结束并输出数据时 x = 11。
一些帮助理解这一点将不胜感激,谢谢。