【问题标题】:lc-3 how to add integer value to a registerlc-3 如何将整数值添加到寄存器
【发布时间】:2014-04-05 16:35:01
【问题描述】:

我是 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

任何帮助将不胜感激!

【问题讨论】:

    标签: integer sum lc3


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您的代码:

      TWO .FILL x32
      THREE .FILL x33
      

      答案:

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

      注意:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-26
        • 1970-01-01
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 2018-09-25
        • 2016-05-08
        • 1970-01-01
        相关资源
        最近更新 更多