LC-3:如何将字符串保存到不同的寄存器?

LC-3: How to Save A String to a Different Register?

我对 LC-3 中的字符串有疑问。例如,我可以编写代码在 R0 中保存一个字符串,一切正常。但是,当我更改寄存器时,控制台上不会打印任何内容或完全是乱码。

例如,如果我将此代码放入模拟器中:

    .ORIG x3000
    LEA R3, L1

L1  .STRINGZ "Hello World"
    TRAP x22
    TRAP x25
    .END

我进入 return:----停止处理器---- 如何使用 R3 中保存的字符串打印 "Hello World"? 非常感谢任何帮助!

LC-3 中所有预定义的 TRAP 指令(HALT 除外)都将使用 R0。 TRAP x22 (PUTS) 将在 R0 中打印一个字符串。

如果您需要将一个寄存器中的值移动到另一个寄存器中,lc-3 没有专门的 mov 指令,您可以使用 ADD 或 AND 指令执行此操作,共有三种方法。

添加 RX、RY、0

A​​ND RX, RY, RY

A​​ND RX, RY, -1

其中 RX 和 RY 是 R0-R7。