您的位置:首页 > 理论基础

《Linux内核分析》MOOC课程之从汇编语言角度看计算机是如何工作的

2015-03-08 00:00 267 查看
piratezgw 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

其实写这个就是为了应付MOOC课程的作业,所在环境无法随时接触互联网,所以提交的都比较晚,废话不多说,进入正题。

一、实验的操作

这方面主要是在Linux环境下使用vi + gcc 编写C程序代码,然后编译成汇编代码,如下图所示





二、代码分析

由于原汇编代码的动态链接并且符号表没有去除,所以去除它们,得到纯汇编代码:

g:
pushl	%ebp
movl	%esp, %ebp
movl	8(%ebp), %eax
addl	$2, %eax
popl	%ebp
ret
f:
pushl	%ebp
movl	%esp, %ebp
subl	$4, %esp
movl	8(%ebp), %eax
movl	%eax, (%esp)
call	g
leave
ret
main:
pushl	%ebp
movl	%esp, %ebp
subl	$4, %esp
movl	$9, (%esp)
call	f
addl	$1, %eax
leave
ret

现在从寄存器的角度进行分析,如图:

































































内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐