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
AND RX, RY, RY
AND RX, RY, -1
其中 RX 和 RY 是 R0-R7。
我对 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
AND RX, RY, RY
AND RX, RY, -1
其中 RX 和 RY 是 R0-R7。