【发布时间】:2016-03-02 21:04:57
【问题描述】:
我试图让一个寄存器(比如 R1)存储一个对于立即数来说太大的特定数字(比如 440)。显然我不能只将 R1 设置为 0 并使用 ADD,有没有办法实现这一点?谢谢!
【问题讨论】:
-
如果您看过任何示例代码,您会发现它使用
.FILL指令将值存储在内存中并从那里加载。
我试图让一个寄存器(比如 R1)存储一个对于立即数来说太大的特定数字(比如 440)。显然我不能只将 R1 设置为 0 并使用 ADD,有没有办法实现这一点?谢谢!
【问题讨论】:
.FILL 指令将值存储在内存中并从那里加载。
好的,所以你的寄存器是 16 位的,所以 440 显然适合那里,但直接字段是 5 位,所以它显然不适合那里。内存也是 16 位宽,所以你可以把它存储在内存中:
toobig: .word 440
然后通过直接内存读取来获取它
LD R1, toobig
【讨论】: