如果我组装以下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仍被未定义的汇编程序接受?有没有办法再次启用错误消息?我想立即找出是否使用了这样的未定义变量。