0

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

谢谢!

4

1 回答 1

0

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

这是一种方法:

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、2、3、4 上INS构造指令STA 91STA 92、 .. STA 95, 5. 这条指令写在 处X,然后以A的值执行COUNT。其余的只是递增COUNT,当它大于 5 时停止。

这是一个实时链接,您可以看到此代码在我自己的 LMC 模拟器上运行。

于 2018-06-18T11:34:03.617 回答