Ассемблер PowerPC не распознает неопределенную переменную с аннотацией @h

Если я соберу следующее 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 все еще не определено? Есть ли способ снова включить сообщение об ошибке? Я хочу немедленно выяснить, используется ли неопределенная переменная, подобная этой.

0 ответов

Другие вопросы по тегам