binaryfiles - 从 Objdump 了解反汇编的二进制文件 - 输出中的字段是什么

标签 binaryfiles disassembly objdump

当我使用命令“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(来自第二行代码)

最佳答案

第一列是代码在内存中的地址。 0x8480表示这段代码的内存地址是0x8480 .

第二列是代码的十六进制表示。 f04f 0b00表示来自内存地址 0x8480 (含)至 0x8484 (排除),有4个字节的代码,f0 , 4f , 0b , 00 .

剩下的就是反汇编的代码。它们是从第二列中的代码中分解出来的。

关于binaryfiles - 从 Objdump 了解反汇编的二进制文件 - 输出中的字段是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48552267/

相关文章:

c++ - 我想用两个版本的 libQtCore.a 检查目标代码

c - 如何将二进制文件读入C中的结构

c++ - 从二进制文件按位对齐的读写

x86-64 - Radare2 反汇编器如何组织可视化面板 (V!)?

c# - 是否有任何好的 VB/C# x86 反汇编程序库?

c++ - 抽象类使用shared_ptr时如何在nm或objdump中找到函数符号?

c - SGABIOS 编译错误

c++ - 如何将 boost::multi_array 保存到文件

c - 为什么这个内存地址 %fs :0x28 ( fs[0x28] ) have a random value?

objdump 和 gdb 的组合