刚刚在这里与Little Man Computer合作,遇到了一个让我烦恼的问题。由于没有if等,我发现很难阻止奇数从偶数中减去负数。例如,我在一个循环和零分支中取3关10。但这永远不会达到零。所以我想知道如何让应用程序在它变为负数之前停止,例如在循环中减去10的3将是10,7,4,1,-2。但我希望它停在1,因此不会消极并克服这个问题。
这是我到目前为止所做的,只适用于偶数和偶数:
INP
STA DEC
INP
LOOP SUB DEC
OUT
BRZ QUIT
BRA LOOP
QUIT HLT
DEC DAT
(首先,我想将第二个输入声明为变量是对的,对吗?或者不是?)
如果你能帮助我,我将不胜感激。并提出永久解决方案。
答案 0 :(得分:1)
我知道我会后悔但是因为这看起来相当直接,我会尝试这个而不能测试: - )
INP
STA DEC
INP
LOOP SUB DEC
BRP OUTPUT
ADD DEC <-- we went negative, so add back once
HLT
OUTPUT OUT
BRA LOOP
DEC DAT
答案 1 :(得分:0)
INP
STA first
INP
LOOP SUB first
BRP yesrepeat
ADD one
HLT
yesrepeat OUT
BRA LOOP
first DAT
one dat 001
答案 2 :(得分:0)
INP
STA DEC
INP
LOOP SUB DEC
OUT
BRP LOOP
HLT
DEC DAT