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

    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

相关文章
相关标签/搜索