我正在尝试和 Marie 做一个简单的乘法运算来做 (a * b) * (c * d)。我可以通过为每个乘法步骤创建一个新的子程序来做到这一点,但我想尝试使用 JnS 来只使用一个子程序。这是我的代码块
Clear
Store result
Input
Output
Store a
Load a
Skipcond 800
Jump negres
Input
Output
Store b
Load b
Skipcond 800
Jump negres
Input
Output
Store c
Load c
Skipcond 800
Jump negres
Input
Output
Store d
Load d
Skipcond 800
Jump negres
Load a
Store X
Load b
Store Y
JnS loop
Load zoop
Store X
Load zoop
Store Y
Load result
Store Y
Load c
Store X
JnS loop
Load zoop
Store X
Load zoop
Store Y
Load result
Store Y
Load d
Store X
JnS loop
Jump halt
loop, Load zoop
Load result
Add Y
Store result
Load X
Subt one
Store X
Skipcond 400
Jump loop
Load zoop
JumpI loop
negres, Load zoop
Store result
Jump halt
halt, Load result
Output
Halt
a, DEC 0
b, DEC 0
c, DEC 0
d, DEC 0
zoop, DEC 0
X, DEC 0
Y, DEC 0
one, DEC 1
result, DEC 0
问题在于我第一次调用循环时,它经历了第一次迭代,传递了 Skipcond 然后从子例程跳回到调用它之后的指令。
这是我第一次使用 JnS,所以任何帮助都会非常感激!