Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >
objdump options <可执行文件名>

-d:将代码段反汇编

-S:将代码段反汇编的同时,将反汇编代码和源代码交替显示,**编译时需要给出-g**,即需要调试信息。

-C:将C++符号名逆向解析

-l(这个是L):反汇编代码中插入源代码的文件名和行号

-j section:仅反汇编指定的section。可以有多个-j参数来选择多个section。

举例

objdump -j .text -l -C -S a.out # 仅反汇编.text段,打印源文件名和行号且逆向解析符号

AT&T汇编语法

* 寄存器命名原则
AT&T: %eax                      Intel: eax
* 源/目的操作数顺序 
AT&T: movl %eax, %ebx           Intel: mov ebx, eax
* 常数/立即数的格式 
AT&T: movl $_value, %ebx        Intel: mov eax, _value
把value的地址放入eax寄存器
AT&T: movl $0xd00d, %ebx        Intel: mov ebx, 0xd00d
* 操作数长度标识 
AT&T: movw %ax, %bx             Intel: mov bx, ax
* 寻址方式 
AT&T:   immed32(basepointer, indexpointer, indexscale)
Intel:  [basepointer + indexpointer × indexscale + imm32)

评论