assembly - 保持输入 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
指令 - 为此目的需要一个标签。每次计算总和时更新总和。目前,一旦输出总和,您就会“忘记”总和,因此在下一个周期中,总和仍将为零。只需
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>
推荐阅读
- javascript - 创建网络注释工具
- bootstrap-4 - 引导 4 表搜索没有返回好的行
- html - 如何使用 nodeJS 使用 MySql 数据库中的数据创建 html 选择选项
- python - 如何从对每个 API 查询的结果有限制的 API 请求的 json 输出中导出“结果的特定部分”到文本文件中
- c# - 从 Asp.net c# 执行部署的 SSIS 包
- sql-server - 处理多维立方体的有效方法
- c# - 如何使用 C# 确定 Visual Studio 版本
- javascript - 清除特定输入字段的跨度文本
- python-3.x - 导入 tensorflow_datasets 时出现错误
- couchbase - Couchbase N1QL ORDER by true 和不存在的字段