piratezgw 原创做品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 code
其实写这个就是为了应付MOOC课程的做业,所在环境没法随时接触互联网,因此提交的都比较晚,废话很少说,进入正题。
get
1、实验的操做编译
这方面主要是在Linux环境下使用vi + gcc 编写C程序代码,而后编译成汇编代码,以下图所示
class
2、代码分析gcc
因为原汇编代码的动态连接而且符号表没有去除,因此去除它们,获得纯汇编代码:互联网
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
如今从寄存器的角度进行分析,如图:
gc