标签:
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
现在从寄存器的角度进行分析,如图:
《Linux内核分析》MOOC课程之从汇编语言角度看计算机是如何工作的
标签:
原文地址:http://my.oschina.net/u/1169027/blog/384091