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
- Linux内核分析(1)
- Linux内核分析1
- Linux内核启动分析(1)
- Linux 内核分析 作业1
- Linux内核分析 实验1
- Linux内核分析 实验1
- 分析linux内核(一)
- Linux内核分析(一)
- Linux内核分析(三)
- Linux内核分析(七)
- Linux内核分析(一)
- Linux内核分析(2)
- Linux内核分析(3)
- linux内核分析(5)
- linux 内核分析(转)
- Linux内核分析(一)
- Linux内核分析(堆栈)
- Linux内核分析(二)
- mysql数据库备份
- [统计学习方法]决策树
- 关于typedef的用法总结
- PAT A1007Maximum Subsequence Sum(贪心算法)
- windows下字符集与编码方案
- Linux内核分析(1)
- VMware自动更新文件位置
- 【机房收费系统】——类型的转换
- Java:集合的作用
- LeetCode(62): Unique Paths
- 安卓蓝牙API(6)
- 1200 最大的两个数
- Python Split函数的用法总结
- PAT1057