我想加载一个32位常量到一个寄存器中,我发现一个伪指令“mov32”可以在其上执行此操作(mov32 pseudo-instruction)。然后,我编写一个汇编文件,其中包括:ARM程序集:错误的指令“mov32”
MOV32 r0, #0xABCDEF12
并与Linaro的工具链编译它(13.04版):
arm-linux-gnueabihf-as -march=armv7-a -mcpu=cortex-a9 test.s -o test.o
但与消息失败:
Error: bad instruction `mov32 r0, #0xABCDEF12'
我不不知道这是否是统一汇编语言的问题。在这种情况下,我在源代码中编写了“.syntax unified”并再次测试,但也失败了。 GNU工具链是否支持ARM伪指令,如“mov32”,“ldr r0,= address”等?如果确实如此,我该如何解决这个问题?谢谢。
LDR RX = 0x12345678的会为你工作与GNU工具。 –
您正在使用gnu汇编程序和arm汇编伪指令。 – auselen