学习汇编踩过的坑及优秀汇编教材推荐
1. 引⾔
在学校时没有好好的学好汇编这门重要的基础课程,总是听很多⽼师说这门课程⼯作后很少⽤到,有众多C,C++,JAVA等等⾼级语⾔。于是乎,这门课程草草结束,也没有⼏个学懂,即使有⼏个同学有⼼学习,也是苦于晦涩难懂的教材,⽆从下⼿。于是与之相关的计算机系统结构,编译原理,操作系统等等⼀众计算机核⼼基础课,甚⾄连C语⾔,C++语⾔也没法深⼊理解,没法从根本上理解,导致了后续⼀连串的计算机课程没深⼊下去,只能在应⽤层开发上打转转,今天学习这个框架,明天学习那个框架,疲于奔命。本⼈在学习过程中,也是踩过很多坑,⼀遍⼜⼀遍的,翻阅了众多⼤师的原版教材后,明⽩了很多,现在来说⼀说踩过的坑。
2. 国⾏教材误⼈⼦弟
陶宝亚马逊等⽹上⼀搜“汇编”,瞬间出来若⼲页汇编教材,存细⼀看,寥寥⼀两百页的⼤把,我不知道是纸贵还是讲不清楚,这样的教材还冠以“规划教材”等各种名头,⽽且⼤都还以讲解16位汇编为主,32位cpu都出来⼆三⼗年了,还抱着⽼古董不放!别跟我说他们区别不⼤,学好了16位⾃然就会32位了!区别可⼤了,会了16位你不认真学32位,你⼀样不会!⽽且现的操作系统,不再⽀持实内存模式了,学个汇编还装个虚拟机,有那个必要吗?别跟⾃⼰的不思进取借⼝。
再说说这些教材的风格,⼀来就是列举指令,也不讲清楚,也不把这些指令的全称列出来,⽅便记忆,不讲解其来龙去脉,不举例⼦或者举⼀个不能执⾏的例⼦,还都是从别的书上⽹上抄来的。计算机是⼀门实践性很强的学科,编程语⾔更是如此,光列⼏个概念有什么⽤?⽽且没有把汇编语⾔的背景和范围讲请楚,让初学者⼀上来就⼀头雾⽔,这就给学⽣⼀个错觉:汇编语⾔⾮常难学!这些教材⼏乎都只讲到了整数的汇编,对浮点数汇编只字不提,那怕你提⼀句话, 也可以给初学者⼀个提⽰,原来整数汇编和浮点数汇编还是不⼀样的。
因此,国⾏版汇编教材就没有⼏本优秀的教材,包括清华那本也有很多地⽅讲的不清楚。
另外,部分英语原版教材被翻译成中⽂出版后,语句不通,或者语句翻译错误,或者曲解作者的意思,或者⾃作聪明的作⼀些不恰当的修改。翻译的⼈本⾝就不精通汇编语⾔,或者语⾔能⼒不过关,活活把⼀本好书翻译烂,这其中不乏挂着各种头衔的专家教授。治学是需要细⼼,细致,准确的,不能搞得这样错误百出。
如此种种,学习汇编语⾔最好是选择国外⼤师编写的优秀教材,最好是看原版的,就算你英⽂不过关,最好也⼀本原版的对照阅读,必要的时候可以帮你纠正⼀下,少⾛弯跳。
3. 优秀的汇编教材和CPU开发⼿册
3.1 <<The Intel Microprocessors>> 8th Edition
作者:BARRY B. BREY
本书⼤⽽全,⽬前最新版为第⼋版,讲解的⽐较细致,例⼦也⽐较多,⽽且与时俱进,应该是汇编领域数⼀数⼆的教材了,个⼈认为学习汇编语⾔,⾸推这本。好像没有看到影印版的英⽂版,不过有电⼦版。
3.2 <<
作者:Kip Irvine
本书最新版为第七版,本书讲解的内容包括16位,32位,64位。以masm编译器为平台,例⼦⽐较多,作者⾃⼰写了很多代码,可以从他的⽹站下载,很容易上⼿。内容也是讲解的⽐较细致,包括浮点汇编和⾼级语⾔诸多内容。本书最新版也是没看到影印版,但是前⼏版有影印版,可以下载电⼦版。其中⽂版也是翻译的问题多多,不忍直视。
3.3 << >>
作者:Daniel Kusswurm学编程学什么语言更好
本书对后续新增的寄存器汇编讲解⽐较多,⾼精度,浮点汇编,多媒体等等,正如其书名,现代汇编。也是⼀本深⼊学习的不⼆教材,实践代码⽐较多。
3.4 << Professional Assembly Language>>
作者:
本书有英语版,是⼀本讲解linux环境下汇编的书,内容全⾯,也讲到了浮点汇编。讲解⼒求全⾯,细致,深⼊浅出,有讲解有例⼦,可操作性强,也是⼀本不可多得的教材。
3.5 Intel CPU开发⼿册
3.6 AMD CPU开发⼿册3.7 关于MASM 的⽂档
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论