码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-03-09 00:36:29      阅读:335      评论:0      收藏:0      [点我收藏+]

标签:

    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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!