在ARM汇编中,无法直接使用立即数或绝对地址来加载数据,这通常会导致“ARM assembly cannot load from address”错误。解决方法是,将要加载的数据存储到内存中,然后使用对应的内存地址来加载数据。以下是一个示例代码:
mov r0, #10 @将立即数10存储到r0寄存器中
ldr r1, =data @将数据data的地址存储到r1寄存器中
ldr r2, [r1] @使用r1寄存器中的地址加载数据到r2寄存器中
.data
data: .word 20 @存储数据20到data标签的地址
在上述代码中,我们首先将要加载的数据存储到一个标签data中。然后,我们使用ldr指令将该标签的地址存储到r1寄存器中。最后,我们使用r1寄存器中的地址来加载数据到r2寄存器中。这样就避免了直接使用立即数或绝对地址的问题。
上一篇:ARM汇编问题(寄存器不足!)
下一篇:ARM汇编无法从地址中加载