首页 > 其他 > 详细

反汇编一个简单的C程序

时间:2015-04-13 20:52:42      阅读:218      评论:0      收藏:0      [点我收藏+]
反汇编一个简单的C程序


看了下网易云课堂的《Linux内核分析》,第一节要求有一个简单C程序得到汇编代码,然后分析。只要明确每个汇编指令代表的含义,就可以容易的走下去,关键是要体会里面的思想。


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


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


int main(){
    return f(8)+1;
}


技术分享
加载程序会从main开始执行,过程如图(1)-(20),执行到“call f”时候 EIP=下一条指令地址=23,然后相当于pushl EIP, movel f,EIP 此时的状态如图(5)

接下来执行代码块f,执行到第15条指令到达 leave(相当于movl %ebp,%esp,popl %ebp)。最后main的ret会把CPU让给其他的程序。

技术分享

技术分享

反汇编一个简单的C程序

原文:http://blog.csdn.net/vonzhoufz/article/details/45031419

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!