反汇编一个简单的C程序
2015-10-15 09:02
344 查看
#include <stdio.h> int g(int x) { return x + 3; } int f(int x) { return g(x); } int main(void) { return f(8) + 1; }
gcc -S -o test.s test.c -m32
.file "test.c" .text .globl g .type g, @function g: .LFB0: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 movl 8(%ebp), %eax addl $3, %eax popl %ebp .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE0: .size g, .-g .globl f .type f, @function f: .LFB1: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 subl $4, %esp movl 8(%ebp), %eax movl %eax, (%esp) call g leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE1: .size f, .-f .globl main .type main, @function main: .LFB2: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 subl $4, %esp movl $8, (%esp) call f addl $1, %eax leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc .LFE2: .size main, .-main .ident "GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2" .section .note.GNU-stack,"",@progbits
相关文章推荐
- 009.判断登陆信息
- Qt 多线程
- JavaScript跨域总结与解决办法
- 并查集路径压缩
- 数据库异常:“Column 'CODE' in where clause is ambiguous”
- Entity Framework 数据生成选项DatabaseGenerated
- String.split()函数使用注意事项
- js操作cookie
- QT 多线程程序设计
- MySql:备份与恢复数据库
- 自己做的漫画阅读APP.
- 在IntelliJ IDEA14中安装go语言插件
- 最优分解方案
- GSON
- 16种发动机动态工作原理图,神奇的帅呆了!
- 马云云栖大会魔性演讲:DT时代、云计算和投资创业详解!
- SQL中Left Join 与Right Join 与 Inner Join 与 Full Join的区别
- Tomcat的URL中文乱码解决以及传输优化
- python 如何引入自己的模块
- echarts动态加载数据,显示柱状图,饼图图表