如何使用 ARM 汇编将值从寄存器存储到绝对地址?
How do I store value from a register to absolute Address using ARM Assembly?
我想使用 ARM 汇编将寄存器值存储到地址。我正在寻找这样的东西,
STR R0, =0x20000000 // store r0 to 0x20000000
但这当然是一个错误。
一种方法如下,
LDR R1, =0x20000000
STR R0, [R1 + #0]
但是如上所述,我只想使用一个寄存器来完成。那有什么办法吗?
But I want to do it using only one register, as mentioned above.
没有可用的指令可以让您这样做,所有存储指令都需要至少一个用于目标地址的寄存器。
原因很简单:尽管有 32 位指令,但这些指令中没有足够的位来编码完整的 32 位地址,因为您总是需要更多的操作码位。
出于同样的原因,加载和存储指令中的可选偏移量受到限制。
我想使用 ARM 汇编将寄存器值存储到地址。我正在寻找这样的东西,
STR R0, =0x20000000 // store r0 to 0x20000000
但这当然是一个错误。
一种方法如下,
LDR R1, =0x20000000
STR R0, [R1 + #0]
但是如上所述,我只想使用一个寄存器来完成。那有什么办法吗?
But I want to do it using only one register, as mentioned above.
没有可用的指令可以让您这样做,所有存储指令都需要至少一个用于目标地址的寄存器。
原因很简单:尽管有 32 位指令,但这些指令中没有足够的位来编码完整的 32 位地址,因为您总是需要更多的操作码位。
出于同样的原因,加载和存储指令中的可选偏移量受到限制。