小人计算机循环

时间:2015-10-15 17:59:57

标签: loops little-man-computer

如何创建一个允许输入和存储在邮箱中的多个输入的循环。我无法将其存储在不同的邮箱中。当输入000或邮箱中没有空间时,程序将停止。谢谢你的帮助!

3 个答案:

答案 0 :(得分:0)

你根本不是很具体,答案很容易找到。但你可以做到这一点。

LOOP INP
     STA MAILBOX 
     BRA LOOP
MAILBOX 000

答案 1 :(得分:0)

如果你想写一个固定地址的邮箱很容易:STA addr指令就是这样做的。如果你想写一个动态地址,那就困难得多,需要自我修改代码。

这是一个从输入读取N的示例,然后从输入中读取N个更多数字并将它们写入地址50,51,52等等。

     INP
     STA C
L    LDA C
     BRZ C
     SUB ONE
     STA C
     LDA T
     ADD ONE
     STA T
     ADD STAOP
     STA STAI
     INP
STAI DAT
     BRA L

C    DAT
ONE  DAT 1
STAOP DAT 300
T    DAT 49

请注意代码中间的STAI DAT:它被STA指令覆盖(目标存储在T之前就已执行了LDA T; ADD STAOP; STA STAI - T加载300的值,添加STAI,然后将其存储在内存位置$mail_array = array($email_address, 'example@yahoo.com'); $this->email->to($mail_array);

像这样的技巧是为什么汇编程序在可维护性方面声名狼借的原因(尽管在现代处理器上,这种风格的自修改代码在使用时并没有多大用处)。

您可以在此处看到它:writing to multiple mailbox in LMC emulator

答案 2 :(得分:0)

保罗给出了正确的答案。

我只想展示它如何工作而无需在“数据部分”中编码操作码(尽管LMC中确实没有这种东西)。动态存储应在其中发生的指令最初不必是setup.py:它可以是DAT指令本身,带有应在其中存储第一个值的标签,然后该操作码可以动态增加:

STA