assembly 如何使用ARM汇编将值从寄存器存储到绝对地址?

laximzn5  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(138)

我想使用ARM汇编将寄存器值存储到一个地址。我在找像这样的东西,

STR R0, =0x20000000            // store r0 to 0x20000000

字符串
但这当然是一个错误。
一种方法如下,

LDR R1, =0x20000000
STR R0, [R1 + #0]


但是我想只使用一个寄存器来做,就像上面提到的那样。有没有办法做到这一点?

rwqw0loc

rwqw0loc1#

但是我想只使用一个寄存器来做,就像上面提到的那样。
没有任何指令可以让你这样做,所有的存储指令都需要至少一个寄存器来存储目的地址。
原因很简单:尽管有32位指令,但这些指令中没有足够的位来编码完整的32位地址,因为您总是需要更多的位用于操作码。
出于同样的原因,加载和存储指令中的可选偏移量也受到限制。

相关问题