文档介绍:学习汇编前你应该知道的知识
第一讲学习汇编前你应该知道的知识
1 汇编需要什么工具和程序,到哪里下载?
目前阶段,汇编程序仅需要两个程序就够了。
,。二者可由
/~unique/Download/Tool/
ar 下载,前者是编译程序,后者是链接程序。
另外,为了验证和调试程序,还需要一个程序 ,该
程序由 windows 本身就提供,所以就不提供下载地址了。
将二者下载后,放到某一个目录中(任意目录都可以),考虑
到很多命令需要通过键盘敲入,所以建议你不要把文件放入到长
文件名目录、中文目录或很深的目录中。比如你可以建一个
“D:\Masm”目录,并建议此后的程序都放这个目录,此后称这
个目录为汇编目录。
2 学习汇编需要有哪些编程方面的知识。
没有任何编程方面的知识,学习此语言等于缘木求鱼,所以请
放弃学习的想法。一般来说至少要知道如下几点:
*)程序的运行逻辑结构有顺序(按语句依次执行)、分支结构
(IF...THEN...ELSE...),循环结构(FOR...NEXT)三种结构。
*)知道什么是子程序,什么是调用。
*)汇编程序员的视角。不同编程视角编程要求是不一样的。比
如删除文件,
>>用户的视角是找到“删除”按钮或菜单,然后单击一下即
可。
>>高级程序员的视角是知道删除的文件,并发出删除命令。
这些通过 API 实现。
>>汇编程员的视角是得到要删除的文件名,找到该文件所
在位置,通过调用删除“中断命令”进行删除。
>>操作系统开发人员的视角则是接到删除命令后,先找到
系统根目录区,由根目录区的链接依次找到子目录区,直到找到
要删除的文件,然后按照操作系统删除文件的规则对该文件名进
行修改。比如 DOS,只把第一个字符改成"?"。
按程序语句等价的角度看,一行 VB 的打印语句,用汇编实现
大约需要一百二十多行。知道汇编语言的视角后就要知道,前面
的道路是坎坷的,没有耐心是不行的。想通过几分钟几行程序就
完成很复杂的操作不是件容易的事。
3 学汇编有什么用?
汇编产生于 DOS 时代或更早,而现在是 Windows 时代,所
以可能遗憾地说:尽管还有批牛人在用汇编开发核心级程序,但
我们几乎没什么用,除了必要时间能拿来分析一两个程序的部分
代码之外,别的也就没干什么用了。并且并不是所有的汇编命令
都能在 windows 下使用。而泛泛地追求“时髦”而学本语言,最
后的结果是损了夫人又折兵。所以学之前你要考虑好。我劝那些
为了当“黑客”而学汇编的人就此止步。
第零讲预备知识
1 一个汇编程序的编译过程是怎么样的。
1)首先你需要找一个编辑器,编辑器用任何“纯文本”编辑器都
可以。比如记事本。编好以后保存到汇编目录中。扩展名为 asm,
比如 。但这里建议你找一个能显示出当前行的编译
器。这样出错后排错很容易。
2)然后在 DOS 下进入 D:\Masm 目录中,输入“masm
",如果有错系统会提示出错的行位置和出错原因。
3)然后再输入“link ”,即可看到当前目录下有一
个 程序。
2 宏汇编和汇编有什么区别吗?
二者的区别在于前者提供宏,后者不提供。后者已找不到了,
所以你可以认为二者没有区别。
3 机器语言、汇编语言、高级语言的关系
最早的计算机采用机器语言,这种语言直接用二进制数表示,
通过直接输入二进制数,插拔电路板等实现,这种“编程”很容易
出错,每个命令都是通过查命令表实现,既然是通过“查表”实现
的,那当然也可以让计算机来代替人查表实现了。于是就产生了
汇编语言,所以不管别人怎么定义机、汇语言,我就认为,二者
是等价。后来人们发现,用汇编语言编某一功能的时候,连续一
段代码都是相同或相似,于是就考虑用一句语言来代替这一段汇
编语言,于是就产生了高级语言。因此,所有高级语言都能转化
成汇编语言,而所以汇编语言又可转化成机器语言。反之,所有
机器语言可以转成汇编语言(因为二者等价)。但并不是所以汇
编语言都能转成高级语言。
4 计算机的组成
通常都把计算机定义成五部分:运算器、控制器、存储器、输
入系统、输出系统。
为了简单其间,我们如此理解:运算器+控制器=CPU。存储器
=内存(暂不包括外存,永不包括 CACHE)。输入系统=键盘(不
包括鼠标),输入系统=显示器(不包括打印机,绘图仪)。
5 寄存器和内