我在为以下程序编写程序时陷入困境,我们将不胜感激。 a_squared +(b x c)。我的循环似乎有问题,但我无法解决。 可以执行a_squared和乘法运算,但是当我尝试将2合并时,它总是不断地要求输入。
答案 0 :(得分:0)
您可以使用从2向下计数到0的计数器。
将第一个输入传递给 b 和 c ,并对结果执行乘数部分。 递减计数器,如果还不为零,则在 b 和 c 中获取其他两个输入,然后再次执行乘法器代码。
如果计数器为零,则表示您已处理所有输入并可以输出结果。
#input: 3 5 2
INP // a
STA b // pass (a, a) to multiplier
STA c
// add (b x c) to result
loop LDA c
exit BRZ endloop
SUB one
STA c
LDA result
ADD b
STA result
BRA loop
// decrement counter from 2 to 1 to 0
endloop LDA counter
SUB one
STA counter
BRZ finish
INP // b
STA b
INP // c
STA c
BRA loop // add (b x c) to result
finish LDA result
OUT
HLT
a DAT
b DAT
c DAT
one DAT 1
counter DAT 2
result DAT 0
<script src="https://cdn.jsdelivr.net/gh/trincot/lmc@v0.7/lmc.js"></script>