1

我是 LC-3 的新手,正在尝试编写简单的程序。我正在尝试将两个整数 2、3 加载到 2 个不同的寄存器中并打印出总和。这是我的程序,而不是添加 2 和 3,而是添加 32 和 33,并为我提供 65 的相应 ascii 字符。如何修复程序以使其打印 5?另外,我知道 OUT 打印 R0 的值,但我将如何打印 R1 和 R2 的值?除了使用 LD 之外,还有其他方法可以将整数值加载到寄存器中吗?

.ORIG x3000

    LD R1, TWO
    LD R2, THREE

    ADD R2, R2, R1
    ADD R0, R2, #0
    OUT

           TRAP x25

两个 .FILL x32 三个 .FILL x33

            .END

任何帮助,将不胜感激!

4

2 回答 2

0

你的代码:

TWO .FILL x32
THREE .FILL x33

回答:

x32 是 ASCII 2,而 x## 是 ASCII 3。您假设使用 ASCII 值 - 您只需要常规十进制值!

笔记:

在十进制 16 以下,十六进制“x2”和“x3”相当于十进制 2 和 3。您也可以使用“#2”或仅使用“2”。

于 2014-10-20T08:39:50.970 回答
0

您将 x32 和 x33 放入两个和三个内存地址中,那么您为什么期望它们只有 x2 和 x3?只需将 x2 和 x3 放入其中即可。要打印 R1 和 R2 的值,您应该像在代码中那样进行传输,然后将其输出。如果您想要更复杂的方式,您可以使用数据状态寄存器并使用数据显示寄存器将 R0 以外的寄存器直接打印到屏幕上。至于将整数加载到寄存器中,LD 可能是您最好的选择。

于 2014-10-19T04:04:25.760 回答