一起学习linux汇编语言

一起学习linux汇编语言

ID:18646104

大小:51.00 KB

页数:10页

时间:2018-09-20

一起学习linux汇编语言_第1页
一起学习linux汇编语言_第2页
一起学习linux汇编语言_第3页
一起学习linux汇编语言_第4页
一起学习linux汇编语言_第5页
资源描述:

《一起学习linux汇编语言》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、作者:luster  摘要:我开始学习在Linux使用汇编语言了。我以前从来没有在Linux下使用过汇编语言。我今天看到了一份文档,是LinuxAssemblyHOWTO,我看了看,决定学习学习。下面是我的学习笔记。让我一起学习吧。  在Linux下使用汇编语言      byWangHui(hwang@ustc.edu)      2001/9/11      我开始学习在Linux使用汇编语言了。我以前从来没有在Linux下使用过汇编语言。我今天看到了一份文档,是LinuxAssemblyHOWTO,我看了看,决定学习学习。下面是

2、我的学习笔记。让我一起学习吧。      1.你需要汇编语言吗?      汇编语言的优点和缺点      汇编语言可以很直接的表达比较低层次的:      ·你可以通过汇编代码访问与机器硬件直接相关的存储器或者I/O口。      ·你可以在一些关键的代码区准确的控制某些代码的行文,避免其他方法带来的多线程共同访问或者硬件设备共享引起的死锁。      ·你可以通过使用汇编打破通常的编译器编译的结果,例如你可以根据自己的考虑优化一些东西。      ·我们可以在代码分片之间建立一些接口。      ·我们可以通过一些汇编代码使处理器

3、进入不寻常的编程模式。例如16bitmodetointerfacestartup,firmware,orlegacycodeonIntelPCs.      ·可以优化一些代码,提高运行速度。      ·可以为特定的应该编写优化代码。      ·可以为某语言的编译器编写代码。      汇编语言是一种层次非常低的语言(仅仅高于手动编写二进制机器指令码),这就意味着:      ·开始写起来会很长而且单调      ·很容易出现bug      ·程序中的bug非常难查找      ·写出来的代码非常难懂,而且不好维护和修改    

4、  ·而且结果是不能到其他体系结构的平台上运行。      ·代码只能针对某特特定体系结构的特定型号的处理器优化。例如,在Intel兼容系列的CPU中,每一款CPU都有特殊的设计,变量也不一样,都有特定的优化考虑。CPU的时间已经有很多了,例如:Intel386,486,Pentium,PPro,PII,PIII,PIV;Cyrix5x86,6x86,M2;AMDK5,K6(K6-2,K6-III),K7(Athlon,Duron).而且新的设计还不断地出现。      ·编写汇编代码时候,我们会花费很多的时间在一些细节事情上,而不能

5、专注一些小的或者大的算法设计,而算法的优化能更快的提高程序运行的速度。例如,你可以用汇编加快一些数组的访问和管理,但是总体上讲,使用hash表会更大程度上加快访问速度。      ·一个算法上的小的改动,可能需要我们全部重新写一段很长的代码。    "compilersmakeitaloteasiertousecomplexdatastructures,  andcompilersdon'tgetboredhalfwaythroughandgenerate  reliablyprettygoodcode."      2.Linux和

6、汇编      你可能已经注意到了,在linux下开发程序,通常不需要使用汇编语言。与DOS不一样,你不需要使用汇编来编写linux的驱动程序(当然,如果你非得用汇编写,也可以)。而且现在的编译器有很多优化器,可以针对不多的CPU优化尼的高级语言写的代码,例如C代码。当然既然我们在讨论这个问题,而且你都在阅读本文了,luster知道你肯定有自己的理由去使用汇编而不是C或者C++了。:)      你可能需要使用汇编,或者你不得不使用汇编。简单的说,使用汇编的理由就是精简代码和libc无关性。还有一个理由就是,希望像一个以前的疯狂的ha

7、cker那样,这些20多岁的hacker的习惯就是用汇编写任何代码。      然而,假如你要移植linux到某些嵌入式硬件环境下,你需要减少系统的大小,你需要将很多基本的系统精简到很小的空间。其中的一个可行的方法就是,重新用汇编写部分(或者全部?)代码。例如,用汇编写的简单的http服务器程序可能少于600bytes,这样呢可以把建立一个webserver(包括一个内核和一个httpd),大小只有400KB或者更小。是不是很爽?:)      今天就学习到这里。下面就让我们真正开始吧。========================

8、==============================================================================================================

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。