文档介绍:为什么要学习汇编语言?
如果把学习比作远行的话,旅行者要解决的不只是一条路的问题,还有两座山的问题。
这两座山的存在会使得你无法看清远方的目标,会使得你一路上不断怀疑方向,失去信心。
这也就是为什么很多人买了厚厚的编程书籍然后让他们永远的在书架上落灰,这也就是为什
么很多人能够饶有兴趣的搜集 n 多的电子书,然后永远的让他们以各种各样的电子状态永久
的停滞在存储器上……
一座山是:为什么要学习汇编语言?我的观点是:因为汇编语言是计算机软件技术的
“原子学说”。我非常喜欢电脑的重要原因是,他上面所有的事情背后都有着明确的原因。
也许正是因为这个原因,所以你看轮船下水,或者房屋开工都会有着杀猪点香的仪式,可是
程序员写程序或者建立新的工程,从来不会有烧香拜佛的情形----如果拜祭的话,是不是要
拜拜电力之神法拉利?汇编语言可以解释 vc 生成的程序为什么没有按照预期结果输出,可
能是优化编译出现了问题,也可能是链接程序的问题,更有可能是马虎导致的程序逻辑上的
问题。但是这一切都可以在汇编语言层次得到完美的解决。如果你用汇编语言学完某项知识,
当用它来完成这个程序的时候,也就意味着你已经完全的掌握了这门知识,你再看 vc 或者
其他高级语言例程的时候,会觉得脉络明晰,甚至你会觉得为什么其他语言要啰嗦那么久。
此谓“游刃有余”或“庖丁解牛”。
另外一座山是:我怎么下手学习?说道这里,我另外提一句,很多人学习编程的初衷
是想“写一个病毒木马”或者“自己设计一款游戏”。对于前者,我并不反对,毕竟“唯一
一项”“由免费软件”支撑起来的庞大产业是杀毒行业,此外还希望如果真有一天设计出来
了,千万不要做的太过分,比如:专门删除 ghost 文件等等,这是心理缺陷的表现。
关于教材,我的观点是教科书有两种,一种是看起来像字典一样,实际上也是字典----
小时候爸爸经常带着赞美的语气说他知道的 xxx 通过背字典的方式来学习,好在爸爸只是知
道,我也肯定不会这样学习的。字典通常都是面目可憎的,仿佛古板的教授,比如说:字典
中“虎”;哺乳动物,毛黄褐色,有黑色条纹,性凶猛,力大。骨和血及内脏均可入药(通
称“老虎”);还有一种看起来轻松得多,娓娓道来,非常不幸这样的书籍通常都是国外翻译
过来的,而翻译人员通常是那些编字典的人员…. ….
这篇文章不会一项一项的介绍汇编语言的知识点,也不会就某个方面深入展开,这是
一本讲 how to 的书,不是讲 what is 的书。读完此书,你应该学会如何查找资料,如何阅读
msdn,甚至可以明白如何讲述清楚自己遇到的问题。读完此书,你在去看罗云彬的那本经
典,就丝毫没有问题。
1
&
版本日期修改内容
2010-9-4 第一版
2
&
用 MasmPlus 学习 Win32 汇编(1)
汇编语言给人的印象就是黑黑的窗口,一行行的字符,不断上滚的界面……初学者必须
弄清楚同汇编语言本身无关的很多东西也正因如此,初学者视汇编语言为畏途。今天开始,
我将讲述如何使用 MasmPlus 进入 Win32 的汇编语言世界。
MasmPlus 的使用
我们在这里推荐使用 MasmPlus 编辑器,这是一款由 Aogo 开发的编辑器,有着诸多的优点。
不过我想对于初学者来说,最重要的优点就是:使用简单不需要配置以及全中文支持。
下载地址为: mplus/ 下载之后即可安装。
MasmPlus 全貌
3
&
另外,我推荐电子版的《Win32ASM 教程》,在/ 首页上有下载。
纸质的图书《Windows 环境下 32 位汇编程序设计(第 2 版)》,这本书的最大特点就是“厚”!
第一版第二版
我说“厚”的意思是此书涵盖面非常宽,并且出版时间很长,你手持此书在各个汇编论坛上
都能找到“同志”。后面我还会使用此书的例子作为讲解。这本书在很多网上书店都有前 4 章的
试读,我强烈推荐各位读读先,也强烈推荐读者购买一本作为“收藏”。
4
&
我的第一个程序
前面说了,MasmPlus 下载安装之后即可使用~ 马上我们就进入到实战阶段。第一个例子
来自《Win32ASM 教程》。具体说是来