lc-3如何将整数值添加到寄存器

时间:2014-04-05 16:35:01

标签: integer sum lc3

我是LC-3的新手并且正在尝试编写简单的程序。 我试图将两个整数2,3加载到2个不同的寄存器中并打印出总和。 这是我的程序,而不是添加2和3,它是添加32和33并给我相应的ascii字符为65.如何修复程序,使其打印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

TWO .FILL x32 三,费用x33

            .END

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您的代码:

TWO .FILL x32
THREE .FILL x33

<强>答案:

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

注意:

低于十进制16,十六进制&#34; x2&#34;和&#34; x3&#34;等于小数2和3.您也可以使用&#34;#2&#34;或者只是&#34; 2&#34;。