(转自:小杜鱼的博客 http://blog.sina.com.cn/s/blog_94263b1801010zfh.html)
计算机程序设计语言分为三个层次:机器语言、汇编语言和高级语言。
机器语言是用0和1的二进制串表示机器指令代码的语言,不同的CPU,机器语言是不同的。
由于机器语言指令很难记,程序员用机器语言只在计算机诞生的早期出现过。汇编语言用一些助记符来代替机器语言指令代码,与机器语言指令代码是一一对应的,因此也是面向机器的,助记符是帮助人们记忆的符号,方便程序员进行编程。
汇编语言程序设计一般用于对硬件的控制,编程效率较低,但设计出的程序工作效率较高。高级语言接近自然语言,容易学习,编程效率较高。
汇编语言到底怎么学习?汇编语言难学吗?学习汇编语言要什么基础吗?汇编语言的学习从哪里入手?最好是看什么样的入门书籍?(这里以80X60汇编为基础)
这些都是汇编语言初学者的普遍疑问,也都是普遍想知道的问题。有的初学者带着这些问题,利用丰富的网络资源进行搜索,也许由于网络上大部分都是高手,或者 本来就是有相当基础的,所以大部分也说不出很明确的答案。为什么这么说了,因为我在刚进行学习的时候,也是在网络上铺天盖地的搜索答案,都没有找到理想 的,还是一片茫然。
我写这篇文章的目的(以后会把自己的学习经验和方法慢慢都写出来,可能会当作日记或者“教程”来发布到自己的博客上,说是教程有点托大了,呵呵!)是想以自己的亲身体验来帮助初学者,同时也为自己的学习留个笔记。
其实网络上有很多这方面的高手和专业人士,他们写的文章相当好,但是这些东西对于高手和已经入门的朋友很有用,对于从来没接触过的朋友不太适合,看不太明 白。我两年前刚开始学习的时候也是什么基础都没有,因为我并不是计算机专业的,可以说我的专业和计算机风牛马不相及。那时候来学习这些东西,一个是因为对 计算机比较感兴趣,玩电脑也有10多年了(也只能说是玩,玩游戏倒是比较可以的);另外一个原因说出来有点不好意思了,由于有一段时间喜欢买彩票,但是很 多比较好点的彩票软件都是收费软件,要注册的,网络上也找不到破解版的,为了免费用软件,不得不去学习破解。(现在想起来当时的想法真垃圾)学破解的基础 就是汇编语言,但是,为了尊重软件制作者的劳动成果,破解的软件从来没有发布过。(现在很少来破解软件了,确实要很多的精力,同时觉得写博客更有意思)
上面提到的问题,小天将一一用自己的亲身经历来说明。
一、汇编语言难学吗?
很明确的告诉大家,不难!这个不难是有一点限定的,你要去学透,那肯定也难,但是只入门,应用到目前的领域中去,还是比较容易的。我不知道大家学习汇编语 言的目的是什么,只能大致猜测一下。一是象小天一样为了去破解软件(当时很垃圾的想法);二是想了解一下硬件工作原理;三是为了单机片程序的开发;四是为 了提高程序的效率,适当插入一些汇编代码。。。。等等,只要大家不是为了用汇编语言去写一个比较大的应用程序,那都是不难的,但是如今完全用汇编来编写程 序的,我想也很少很少了,除了个别相当的牛人。除了以前在DOS操作系统普及的情况下,有不少汇编语言写的程序,但是后来多数也是用C语言来写了。
二、学习汇编语言要什么基础吗?
可以说不要什么基础,因为我就是在没有任何基础的情况下来学习的,(我是属于比较笨的人了,相信大家比我都要聪明的)可能对于高手和专业编程人员来说,我 的学习深度是九牛一毛。但是,用于以前自己来破解程序还是够了的,笔者要达到的目的也只有这个,学深了也没有必要,真要学,也学不完。只能作为爱好。也许 读者不是为了破解来学汇编的,但是只是为了入门,也是不要基础的。如果读者已经是这方面高手了,那么这些文章,都可以不用看了。因为笔者以后的文章,都只 是针对没有入门的朋友的。
三、汇编语言的学习从哪里入手?
直接从80X60的汇编语言开始学习就可以了,这里也许有的人会提到现在已经是32位操作系统了,甚至是64位操作系统了,怎么还从80X86汇编语言开 始。其实,学会了80X86的汇编,对于以后学习WIN32汇编等就容易一些,学破解后来也被逼学了WIN32汇编,而在学WIN32汇编的时候,又学习 了C语言。学完之后,才明白,WIN32汇编和C语言联系比较大,但是学习了80X86汇编对于理解其他的东西有很大的帮助,学起来容易很多。于是,恍然 大悟,原来,这些东西也是万变不离其宗的。
四、最好是看什么样的入门书籍?
就我的经历来说,我认为最好的应该是王爽的《汇编语言》,这本书,学完之后,也发现了他的一些不足之处,比如牵涉的面太窄,系统性不太好之类的问题。但是 对于初学者,却相当好,因为初学的朋友,什么都不懂,而这部书,却恰好屏蔽了不少的知识面。也正是一个道理,广而不精,精而不广。正因为它不广,所以初学 的朋友,容易接受。这部书的这些缺点,在你学完这本书后,你可以去看《80x86汇编语言程序设计教程》(杨季文)、《IBM-PC汇编语言程序设计》 (沈美明温冬婵)、Intel汇编语言程序设计(第四版)这些书来弥补,但是你一定要学好了王爽的这部书后,才去看,这样才能看懂、才好理解,要不你就很 可能似懂非懂。把这些书都看了后,看其他的书也就都大同小异了。其实当你看了其中一本后,你就会有这样的感觉,但是你自己却在不知不觉中提高了