了解Objdump的反汇编二进制文件-输出中的字段是什么 [英] Understanding disassembled binary from Objdump - What are the fields from the output
问题描述
使用命令"arm-linux-gnueabihf-objdump -d a.out"反汇编一个简单的ARM二进制文件时,得到以下输出
I get the following output when I disassembled a simple ARM binary file using the command "arm-linux-gnueabihf-objdump -d a.out"
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(从第二行代码开始)
What do different columns represent here? For example, 8480 and f04f 0b00 (from the 2nd line of code)
推荐答案
第一列是内存中代码的地址. 0x8480
表示这段代码的内存地址为 0x8480
.
The first column is the address of the code in memory. 0x8480
means the memory address of this piece of code is 0x8480
.
第二列是代码的十六进制表示. f04f 0b00
表示从内存地址 0x8480
(包括)到 0x8484
(不包括),有4个字节的代码, f0
, 4f
, 0b
, 00
.
The second column is the hex representation of the code. f04f 0b00
means from memory address 0x8480
(included) to 0x8484
(excluded), there are 4 bytes of code, f0
, 4f
, 0b
, 00
.
剩下的就是反汇编的代码.它们从第二栏中的代码中反汇编.
The remaining is the disassembled code. They are disassembled from the code in second column.
这篇关于了解Objdump的反汇编二进制文件-输出中的字段是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!