0

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
...

なぜこれが起こるのですか?

4

0 に答える 0