我想使用ARM汇编直接将1个32位十六进制数加载到寄存器中。
mov r1,#0x6c617669
由于这个指令只能加载8位值,因此无法使用。所以我直接从内存中加载32位值。那么我该如何在ARM汇编中将32位值存储到内存中并直接加载到寄存器中呢?
我尝试了以下代码。
.global main
main:
sub sp,sp,#4
str lr,[sp,#0]
sub sp,sp,#4
str r0,x
add sp,sp,#4
ldr lr,[sp,#0]
add sp,sp,#4
mov pc,lr
.data
x: .word 0x6c617669
但是会出现以下错误。
test1.s: Assembler messages:
test1.s:45: Error: internal_relocation (type: OFFSET_IMM) not fixed up