Assembly LMC-不进入负片(小人电脑)

Assembly LMC-不进入负片(小人电脑),assembly,low-level,little-man-computer,Assembly,Low Level,Little Man Computer,我只是在这里用“小人”电脑工作,遇到了一个困扰我的问题。由于没有if's等,我发现当从偶数中减去奇数时,很难阻止奇数变成负数。例如,我在一个循环中从10中取3,然后在0处分支。但这永远不会达到零。所以我想知道如何让应用程序在变成负数之前停止,例如,循环中10减去3将是10,7,4,1,-2。但我希望它停在1,因此不要进入负面状态,克服这个问题 这是我到目前为止所做的,仅适用于偶数和偶数: INP STA DEC INP LOOP SUB DEC OUT BRZ QUIT BRA LOOP QUI

我只是在这里用“小人”电脑工作,遇到了一个困扰我的问题。由于没有if's等,我发现当从偶数中减去奇数时,很难阻止奇数变成负数。例如,我在一个循环中从10中取3,然后在0处分支。但这永远不会达到零。所以我想知道如何让应用程序在变成负数之前停止,例如,循环中10减去3将是10,7,4,1,-2。但我希望它停在1,因此不要进入负面状态,克服这个问题

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

INP
STA DEC
INP
LOOP SUB DEC
OUT
BRZ QUIT
BRA LOOP
QUIT HLT
DEC DAT
(首先,我想将第二个输入声明为变量是个好主意,对吗?对不对?)


如果你能帮助我,我将不胜感激。我知道我会为此感到遗憾,但由于这似乎相当直截了当,我将在无法测试的情况下尝试:-)

INP
STA DEC
磷化铟
环路分段
BRP输出

加DEC如果初始值为10,减量为3,会发生什么情况?(10,7,4,1,-2-仍然不起作用)OP似乎有一个站不住脚的问题。@KevinDTimm我第一次听说LMC,所以我很可能错过了一些重要的东西,但如果事情像我想象的那样起作用,我看不到其他值的问题。。。?最后的减法和加法可能并不完美,但我的目标是直截了当的。你和我都是,但我不认为他的问题的解决方案是直接的-OPs的例子将达到-2,一个增量将不起作用,要达到零需要2个增量——想象周五下午的排列会让我的大脑哭泣。(因此“站不住脚”的评论)@KevinDTimm我不确定我是否理解你的意思:)DEC是一个“变量”,而不是一条指令,这是造成混乱的原因吗?总之,在找到一个模拟器时,似乎在模拟时工作:)工作得很好。非常感谢你。我明白你们的意思,小人电脑是一种非常,让我说模糊的语言,如此模糊有其积极和消极的一面,你们需要大量的“变通”。
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
INP
STA first
INP
LOOP SUB first
BRP yesrepeat
ADD one
HLT
yesrepeat OUT
BRA LOOP
first DAT
one dat 001
INP
STA DEC
INP
LOOP SUB DEC
OUT
BRP LOOP 
HLT
DEC DAT