保留 运行 个输入 LMC 的总数
Keeping a running total of numbers entered LMC
我正在制作一个程序,允许用户无限期地输入数字,直到他们输入“0”。一旦他们输入 0,程序就会停止。但是,我想将输入的每个数字添加到 运行 总数中,并在每次用户输入新数字时输出总数。例如:
输入=2
总计 = 2
输入 = 2
总计 = 4
输入 = 3
总计 = 7
输入 = 0
程序停止
代码:
START INP
ADD TOTAL
OUT
BRA START
HLT
TOTAL DAT 000
上面的代码无限期地接受用户输入但输出单个数字(不保留 运行 总数)。我想知道如何保留所有输入数字的总计 运行 并在用户在 LMC 中输入 0 时停止程序。提前致谢。
您的代码中只缺少两件事:
测试输入是否为零并停止程序。您可以在输入完成后立即使用简单的 BRZ
指令执行此操作,然后让它分支到 HLT
指令——为此需要一个标签。
总计的update每次你都计算了总和。目前,一旦输出总和,您就会“忘记”总和,因此在下一个周期中总和仍将为零。加完后直接加一个STA TOTAL
就可以了。
这是一个可运行的片段:
START INP
BRZ STOP # stop when user entered 0
ADD TOTAL
STA TOTAL # save result, so it accumulates
OUT
BRA START
STOP HLT
TOTAL DAT 000
<script src="https://cdn.jsdelivr.net/gh/trincot/lmc@v0.816/lmc.js"></script>
我正在制作一个程序,允许用户无限期地输入数字,直到他们输入“0”。一旦他们输入 0,程序就会停止。但是,我想将输入的每个数字添加到 运行 总数中,并在每次用户输入新数字时输出总数。例如:
输入=2
总计 = 2
输入 = 2
总计 = 4
输入 = 3
总计 = 7
输入 = 0
程序停止
代码:
START INP
ADD TOTAL
OUT
BRA START
HLT
TOTAL DAT 000
上面的代码无限期地接受用户输入但输出单个数字(不保留 运行 总数)。我想知道如何保留所有输入数字的总计 运行 并在用户在 LMC 中输入 0 时停止程序。提前致谢。
您的代码中只缺少两件事:
测试输入是否为零并停止程序。您可以在输入完成后立即使用简单的
BRZ
指令执行此操作,然后让它分支到HLT
指令——为此需要一个标签。总计的update每次你都计算了总和。目前,一旦输出总和,您就会“忘记”总和,因此在下一个周期中总和仍将为零。加完后直接加一个
STA TOTAL
就可以了。
这是一个可运行的片段:
START INP
BRZ STOP # stop when user entered 0
ADD TOTAL
STA TOTAL # save result, so it accumulates
OUT
BRA START
STOP HLT
TOTAL DAT 000
<script src="https://cdn.jsdelivr.net/gh/trincot/lmc@v0.816/lmc.js"></script>