assembly 如何将立即数加载到arm64中的寄存器?

wqnecbli  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(191)

我想将一个立即数(0x48f0d0)加载到寄存器x0,但出现错误“汇编程序消息:

/tmp/ccUzTnfa.s:257: Error: immediate cannot be moved by a single instruction"

这是我使用的指令:

mov x0, #0x48f0d0
0ejtzxu1

0ejtzxu11#

在ARM 64上,只有certain constants可以表示为立即数操作数。要解决此限制,请从文本池加载

ldr x0, =0x48f0d0

或者使用movz/movk对:

movz x0, #0xf0d0
movk x0, #0x48, lsl #16

相关问题