LMC(ASM)计数循环

时间:2016-05-22 23:41:32

标签: assembly little-man-computer

LMC是一个超过@ http://gcsecomputing.org.uk/lmc/index.html的学习工具,一组问题是“编写程序以按升序输出数字1到10。

编写一个程序,按降序输出数字1到10。“

使用指令集http://gcsecomputing.org.uk/lmc/instruction_set.html我能够得到这个

loop LDA value1
OUT
SUB value2
STA value1
BRP loop

value1 DAT 10
value2 DAT 1

这从10到0计数,但我无法弄清楚如何向上计数到10然后停止计数。任何帮助解决这两个问题的人都会非常感激。

1 个答案:

答案 0 :(得分:1)

更改方向(SUB变成ADD),更改开始/结束值(value1value2)并与10进行比较(通过执行{ {1}}和SUB)来检测是否已达到最终值。在那种情况下,您只需要输出那个并停止。

不要忘记在程序中添加BRZ,因为您不希望执行在数据部分继续进行。

我还建议使用更有意义的变量名(HLT标签)。

DAT