gxtv10 发表于 2010-9-15 16:23

献给汇编语言初学者


汇编语言到底怎么学习?汇编语言难学吗?学习汇编语言要什么基础吗?汇编语言的学习从哪里入手?最好是看什么样的入门书籍?(这里以80X60汇编为基础)这些都是汇编语言初学者的普遍疑问,也都是普遍想知道的问题。

引用:

计算机程序设计语言分为三个层次:机器语言、汇编语言和高级语言。

机器语言是用0和1的二进制串表示机器指令代码的语言,不同的CPU,机器语言是不同的。

由于机器语言指令很难记,程序员用机器语言只在计算机诞生的早期出现过。汇编语言用一些助记符来代替机器语言指令代码,与机器语言指令代码是一一对应的,因此也是面向机器的,助记符是帮助人们记忆的符号,方便程序员进行编程。

汇编语言程序设计一般用于对硬件的控制,编程效率较低,但设计出的程序工作效率较高。高级语言接近自然语言,容易学习,编程效率较高。


汇编语言到底怎么学习?汇编语言难学吗?学习汇编语言要什么基础吗?汇编语言的学习从哪里入手?最好是看什么样的入门书籍?(这里以80X60汇编为基础)

这些都是汇编语言初学者的普遍疑问,也都是普遍想知道的问题。有的初学者带着这些问题,利用丰富的网络资源进行搜索,也许由于网络上大部分都是高手,或者本来就是有相当基础的,所以大部分也说不出很明确的答案。为什么这么说了,因为我在刚进行学习的时候,也是在网络上铺天盖地的搜索答案,都没有找到理想的,还是一片茫然。

我写这篇文章的目的(以后会把自己的学习经验和方法慢慢都写出来,可能会当作日记或者“教程”来发布到自己的博客上,说是教程有点托大了,呵呵!)是想以自己的亲身体验来帮助初学者,同时也为自己的学习留个笔记。

其实网络上有很多这方面的高手和专业人士,他们写的文章相当好,但是这些东西对于高手和已经入门的朋友很有用,对于从来没接触过的朋友不太适合,看不太明白。我两年前刚开始学习的时候也是什么基础都没有,因为我并不是计算机专业的,可以说我的专业和计算机风牛马不相及。那时候来学习这些东西,一个是因为对计算机比较感兴趣,玩电脑也有10多年了(也只能说是玩,玩游戏倒是比较可以的);另外一个原因说出来有点不好意思了,由于有一段时间喜欢买彩票,但是很多比较好点的彩票软件都是收费软件,要注册的,网络上也找不到破解版的,为了免费用软件,不得不去学习破解。(现在想起来当时的想法真垃圾)学破解的基础就是汇编语言,但是,为了尊重软件制作者的劳动成果,破解的软件从来没有发布过。(现在很少来破解软件了,确实要很多的精力,同时觉得写博客更有意思)

上面提到的问题,小天将一一用自己的亲身经历来说明。

一、汇编语言难学吗?

很明确的告诉大家,不难!这个不难是有一点限定的,你要去学透,那肯定也难,但是只入门,应用到目前的领域中去,还是比较容易的。我不知道大家学习汇编语言的目的是什么,只能大致猜测一下。一是象小天一样为了去破解软件(当时很垃圾的想法);二是想了解一下硬件工作原理;三是为了单机片程序的开发;四是为了提高程序的效率,适当插入一些汇编代码。。。。等等,只要大家不是为了用汇编语言去写一个比较大的应用程序,那都是不难的,但是如今完全用汇编来编写程序的,我想也很少很少了,除了个别相当的牛人。除了以前在DOS操作系统普及的情况下,有不少汇编语言写的程序,但是后来多数也是用C语言来写了。

二、学习汇编语言要什么基础吗?

可以说不要什么基础,因为我就是在没有任何基础的情况下来学习的,(我是属于比较笨的人了,相信大家比我都要聪明的)可能对于高手和专业编程人员来说,我的学习深度是九牛一毛。但是,用于以前自己来破解程序还是够了的,笔者要达到的目的也只有这个,学深了也没有必要,真要学,也学不完。只能作为爱好。也许读者不是为了破解来学汇编的,但是只是为了入门,也是不要基础的。如果读者已经是这方面高手了,那么这些文章,都可以不用看了。因为笔者以后的文章,都只是针对没有入门的朋友的。

三、汇编语言的学习从哪里入手?

直接从80X60的汇编语言开始学习就可以了,这里也许有的人会提到现在已经是32位操作系统了,甚至是64位操作系统了,怎么还从80X86汇编语言开始。其实,学会了80X86的汇编,对于以后学习WIN32汇编等就容易一些,学破解后来也被逼学了WIN32汇编,而在学WIN32汇编的时候,又学习了C语言。学完之后,才明白,WIN32汇编和C语言联系比较大,但是学习了80X86汇编对于理解其他的东西有很大的帮助,学起来容易很多。于是,恍然大悟,原来,这些东西也是万变不离其宗的。

四、最好是看什么样的入门书籍?

就我的经历来说,我认为最好的应该是王爽的《汇编语言》,这本书,学完之后,也发现了他的一些不足之处,比如牵涉的面太窄,系统性不太好之类的问题。但是对于初学者,却相当好,因为初学的朋友,什么都不懂,而这部书,却恰好屏蔽了不少的知识面。也正是一个道理,广而不精,精而不广。正因为它不广,所以初学的朋友,容易接受。这部书的这些缺点,在你学完这本书后,你可以去看《80x86汇编语言程序设计教程》(杨季文)、《IBM-PC汇编语言程序设计》(沈美明 温冬婵 )、Intel汇编语言程序设计(第四版)这些书来弥补,但是你一定要学好了王爽的这部书后,才去看,这样才能看懂、才好理解,要不你就很可能似懂非懂。把这些书都看了后,看其他的书也就都大同小异了。其实当你看了其中一本后,你就会有这样的感觉,但是你自己却在不知不觉中提高了。

dutyzqly 发表于 2010-9-15 16:33

谢谢啦,概念清楚多了

sunixsu 发表于 2010-10-9 14:26

先学基础,再加深,再破解,这样好

liangzi75 发表于 2010-10-19 11:44

王爽老师的书对初学者非常合适。

胖笨笨 发表于 2010-10-21 15:32

谢谢了!:)eee

jimmy2218 发表于 2010-10-25 22:14

我在学王爽老师的书,就是学完后,不知道该学什么!现在我明白了!谢谢诶

hero2008 发表于 2010-11-20 20:05

谢谢楼主的指导

dailyzzm 发表于 2010-11-25 13:18

王爽的书对于初学者来说确实不错

gkimqulove 发表于 2010-12-4 15:27

谢谢你的这个意见

zhuwocg 发表于 2010-12-4 22:05

有空去看看
页: [1] 2 3
查看完整版本: 献给汇编语言初学者