反汇编一个简单的C程序并分析

举报
远航 | FIBOS 发表于 2020/12/02 00:57:42 2020/12/02
5.6k+ 0 0
【摘要】 反汇编一个简单的C程序并分析 C 源码: int g(int x) { return x+1; } int f(int x) { return g(x); } int main(void) { return f(2) + 3; } 1234567891011121314 汇编源码: 1 g: 2 pushl %ebp 3 movl %esp, %...

反汇编一个简单的C程序并分析

C 源码:

int g(int x)
{ return x+1;
}

int f(int x)
{ return g(x);
}

int main(void)
{ return f(2) + 3;
}

  
 

汇编源码:

1 g:
2   pushl   %ebp
3   movl %esp, %ebp
4   movl 8(%ebp), %eax
5   addl $1, %eax
6   popl %ebp
7   ret
8 f:
9   pushl   %ebp
10  movl %esp, %ebp
11  subl $4, %esp
12  movl 8(%ebp), %eax
13  movl %eax, (%esp)
14  call g
15  leave
16  ret
17 main:
18  pushl   %ebp
19  movl %esp, %ebp
20  subl $4, %esp
21  movl $2, (%esp)
22  call f
23  addl $3, %eax
24  leave
25  ret

  
 

执行过程:(从 main 开始)

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image


原创作品转载请注明出处


http://blog.luoyuanhang.cn

MOOC课程
《Linux内核分析》

Created By 罗远航

luoyhang003@hotmail.com

July 03,2015

文章来源: blog.csdn.net,作者:冰水比水冰,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/luoyhang003/article/details/46746533

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。