《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

相關文章
相關標籤/搜索