了解从 Objdump 反汇编的二进制文件 - 输出中的字段是什么
Understanding disassembled binary from Objdump - What are the fields from the output
当我使用命令 "arm-linux-gnueabihf-objdump -d a.out"
反汇编一个简单的 ARM 二进制文件时,我得到以下输出
00008480 <_start>:
8480: f04f 0b00 mov.w fp, #0
8484: f04f 0e00 mov.w lr, #0
8488: bc02 pop {r1}
848a: 466a mov r2, sp
这里不同的列代表什么?例如,8480 和 f04f 0b00(从第 2 行代码开始)
第一列是代码在内存中的地址。 0x8480
表示这段代码的内存地址为0x8480
。
第二列是代码的十六进制表示。 f04f 0b00
表示从内存地址0x8480
(含)到0x8484
(不含),有4个字节的代码,f0
、4f
、0b
, 00
.
剩下的就是反汇编代码了。它们是从第二列中的代码反汇编的。
当我使用命令 "arm-linux-gnueabihf-objdump -d a.out"
反汇编一个简单的 ARM 二进制文件时,我得到以下输出00008480 <_start>:
8480: f04f 0b00 mov.w fp, #0
8484: f04f 0e00 mov.w lr, #0
8488: bc02 pop {r1}
848a: 466a mov r2, sp
这里不同的列代表什么?例如,8480 和 f04f 0b00(从第 2 行代码开始)
第一列是代码在内存中的地址。 0x8480
表示这段代码的内存地址为0x8480
。
第二列是代码的十六进制表示。 f04f 0b00
表示从内存地址0x8480
(含)到0x8484
(不含),有4个字节的代码,f0
、4f
、0b
, 00
.
剩下的就是反汇编代码了。它们是从第二列中的代码反汇编的。