如果我组装以下PowerPC
...
asm.as
:
li r0, hello
nop
...我收到一条适当的错误消息:
> powerpc-eabi-as -mregnames -mgekko ../asm.as -o asm.ob
../asm.as: Assembler messages:
../asm.as:2: Error: unsupported relocation against hello
这是因为hello
未定义。错误是期望的行为。但是,如果我使用@h
(更高的 16 位)注释,它将默默地组装并假设hello
具有值0
:
asm.as
:
li r0, hello@h
nop
使用的命令:
$ powerpc-eabi-as -mregnames -mgekko ../asm.as -o asm.ob
$ powerpc-eabi-objcopy -O "binary" asm.ob asm
$ rm asm.ob
$ xxd -p asm
3800000060000000
为什么这个新代码现在hello
仍被未定义的汇编程序接受?有没有办法再次启用错误消息?我想立即找出是否使用了这样的未定义变量。