如何在MARIE中的一行中打印字符串?

时间:2017-10-16 22:27:41

标签: marie

我想在MARIE的一行中打印一组字母。我修改了代码以打印Hello World并提出:

    ORG     0       / implemented using "do while" loop
WHILE,      LOAD        STR_BASE    / load str_base into ac
    ADD     ITR         / add index to str_base
    STORE       INDEX       / store (str_base + index) into ac
    CLEAR               / set ac to zero
    ADDI        INDEX       / get the value at ADDR
    SKIPCOND    400     / SKIP if ADDR = 0 (or null char)
    JUMP        DO      / jump to DO
    JUMP        PRINT       / JUMP to END

DO, STORE       TEMP                / output value at ADDR
    LOAD        ITR         / load iterator into ac
    ADD         ONE         / increment iterator by one
    STORE       ITR         / store ac in iterator
    JUMP        WHILE       / jump to while

PRINT,      SUBT    ONE
            SKIPCOND  000
            JUMP     PR
            HALT

PR,     OUTPUT
        JUMP WHILE

ONE,        DEC     1
ITR,        DEC     0
INDEX,      HEX     0
STR_BASE,   HEX     12      / memory location of str
STR,        HEX     48      / H
    HEX     65      / E
    HEX     6C      / L
    HEX     6C      / L
    HEX     6F      / O
    HEX     0       / carriage return
    HEX     57      / W
    HEX     6F      / O
    HEX     72      / R
    HEX     6C      / L
    HEX     64      / D
    HEX     0       / NULL char

我的程序最终停止了两次迭代。我似乎无法弄清楚如何在一行中打印一组字符。感谢。

1 个答案:

答案 0 :(得分:0)

您的STR_BASE值几乎可以肯定是错误的。根据这里的内容,我想说它应该是18而不是12。另外,您可能想删除“ HELLO”和“ WORLD”之间的当前null字符,并用空格替换,或者只是删除该行,具体取决于在您的预期输出上。