Linaro ツールチェーンを使用して、アセンブリと C で AArch64 アプリケーションを設計しており、objdump を頻繁に使用して、自分の逆アセンブルされたバイナリを確認しています。ただし、objdump はファイルの一部をデコードせず、データとして扱います。ソースの 2 番目のラベルの後に常に発生します。
たとえば、次のコード:
.global _Reset
_Reset:
BL get_cpuid
CBNZ x0, inf_loop
LDR x0, =page_table_base
LDR x1, =0x0000000000000601
STR x1, [x0, #0x00]
test:
LDR x1, =0x0060000040000601
STR x1, [x0, #0x08]
...
分解して
Disassembly of section .startup:
0000000000000000 <_Reset>:
0: 94000024 bl 90 <get_cpuid>
4: b50004c0 cbnz x0, 9c <inf_loop>
8: 58000880 ldr x0, 118 <TXTN+0x3>
c: 580008a1 ldr x1, 120 <TXTN+0xb>
10: f9000001 str x1, [x0]
0000000000000014 <test>:
14: 580008a1 .word 0x580008a1
18: f9000401 .word 0xf9000401
...
なぜこれが起こるのですか?