我是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
任何帮助将不胜感激!
答案 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;。