我从一个不再可用的站点下载了 MARIE 模拟器,并编写了一个小程序,它只声明一组十六进制数字,然后尝试使用该地址检索其中一个数字。
问题是汇编器抱怨这loadi不是一个可识别的指令。如果我使用load而不是loadi,它将组装并运行并打印预期的输出(我想要的值的地址)。
我相信loadi应该可以工作并且是我需要的指令,因为我之前对它的理解是它将加载在操作数给出的地址处找到的值,以及我在this one和this one等网站上找到的一些文档。
为什么loadi不被认可?难道我做错了什么?也许有不同版本的 MARIE 对某些指令有不同的支持?
我的玛丽代码:
ORG 0
    JUMP    start
BADDR,  hex 0003    / Date_B = 0003
EADDR,  hex 001A    / Date_E = 001A
    / data section begins
Data_B, hex 0102 / data begin address    3
    hex 0105 / dec 261
    hex 0106 / dec 262
    hex 0108 / dec 264
    hex 011A / dec 282
    hex 0120 / dec 288
    hex 0225 / dec 549
    hex 0230 / dec 560      10
    hex 0231 / dec 561
    hex 0238 / dec 568
    hex 0339 / dec 825
    hex 0350 / dec 848
    hex 0459 / dec 1113     000F
    hex 055F / dec 1375
    hex 066A / dec 1642
    hex 0790
    hex 08AB
    hex 09AF
    hex 0AB9
    hex 0BBD
    hex 0CC1
    hex 0DCA               
    hex 0EFE /                 0019
Data_E, hex 0FFE / data end address 001A
Count,  dec 24          / the number of data
start,  loadi mid
        output
        halt
mid,      hex   000F / starting mid point