0

只是在这里与 Little Man Computer 合作,并遇到了一个让我烦恼的问题。由于没有 if 等,我发现当从偶数中减去时,很难阻止奇数变成负数。例如,我在一个循环中从 10 中取 3,分支为零。但这永远不会达到零。所以我想知道如何让应用程序在它变为负数之前停止,例如从循环中的 10 中减去 3 将是 10、7、4、1、-2。但我希望它停止在 1,因此不会陷入负面并克服这个问题。

这是我到目前为止所拥有的,仅适用于偶数和偶数:

INP
STA DEC
INP
LOOP SUB DEC
OUT
BRZ QUIT
BRA LOOP
QUIT HLT
DEC DAT

(首先,我想将第二个输入声明为变量是个好主意,对吧?或者不是?)

如果您能帮助我,将不胜感激。并提出一个永久的解决方案。

4

3 回答 3

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
于 2012-02-10T22:05:39.713 回答
-1
INP
STA first
INP
LOOP SUB first
BRP yesrepeat
ADD one
HLT
yesrepeat OUT
BRA LOOP
first DAT
one dat 001
于 2012-12-23T21:48:29.923 回答
-1
INP
STA DEC
INP
LOOP SUB DEC
OUT
BRP LOOP 
HLT
DEC DAT 
于 2014-02-10T12:05:41.963 回答