LMC程序(使用分支)将值存储在不同的位置

时间:2018-05-09 19:33:12

标签: little-man-computer

所以这是一个学校项目:我需要设计一个程序(使用分支循环),在内存位置91中存储1,在92中存储2等...到5存储在95.我不是很了解LMC并希望得到一些建议。我使用peterhigginson.co.uk/LMC作为我的代码(如果有帮助的话)。程序不能像91中的存储1那么简单,它必须使用有限循环来完成。我可以轻松地在任何其他编码控制台中使用它,而不是LMC。任何帮助太感激了。

谢谢!

1 个答案:

答案 0 :(得分:0)

这不是一个简单的问题。对于写入不同地址的代码,您必须使用STASTA xx的编码构建正确的3xx指令。

这是一种方法:

L LDA COUNT
  ADD INS
  STA X
  LDA COUNT
X HLT
  LDA COUNT
  ADD ONE
  STA COUNT
  LDA FIVE
  SUB COUNT
  BRP L
  HLT

COUNT DAT 1
ONE   DAT 1
FIVE  DAT 5
INS   STA 90

有一个计数器(存储在COUNT中)从1到5,每次通过循环L,它都被添加到390(存储在{{1} }} - 这将在迭代1,2,3,4,5上构造指令INSSTA 91,..,STA 92。此指令在{{1}处编写},然后使用值为STA 95的{​​{1}}执行。其余的只是增加X,并在大于5时停止。

Here's a live link, which you can see this code running on my own LMC emulator.