Linux内核分析(1)

来源:互联网 发布:氨基酸数据库 编辑:程序博客网 时间:2024/06/05 10:26

在网易云课堂上学了Linux内核分析这门课,第一课学了汇编知识,其实之前学习微机原理的时候学习过这些知识但这次是个很好的复习。

首先是代码

这个就是一个简单的函数调用。

然后我们具体的看一下:编译后的main.s文件

http://write.blog.csdn.net/postedit?ref=toolbarhttp://write.blog.csdn.net/postedit?ref=toolbar

首先来看看main函数

首先说明 ebp和esp是分别指向栈顶和栈底。

eax是用来储存数值。

首先来看18,19行

这里把ebp压栈,然后把esp移回去。

20-22

然后把变量6放到栈,之后调用子函数。

call在执行的时候,就把ip(也就是23行)压进了栈。

f

f代码段开始的时候和那个18,19行一样

之后12-13行就是把刚刚那个6取出来

call g

这些都和前面一样,

第5行,就是把之前8和6加

然后是ret

也就是pop ip返回代码执行的地方。

也就是刚刚call 压的那个,

这样就回到刚刚那个函数

这时候leave,也就是回到刚刚压进变量的前面。后面的就同理了

刘思亮

原创作品转载请注明出处

《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”





0 0
原创粉丝点击