学习前应该知道的知识剖析.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学习汇编前应该知道的知识 第一讲 学习汇编前你应该知道的知识1、汇编需要什么工具和程序?目前阶段,汇编程序仅需要两个程序就够了。 masm.exe,link.exe。前者是程序,后者是链接程序。另外,验证和调试程序debug.exe,程序由windows本身。建议可以建一个“D:\Masm”目录,并建议此后的程序都放这个目录,此后称这个目录为汇编目录。2、学习汇编需要有哪些编程方面的知识。没有任何编程方面的知识,学习此语言等于缘木求鱼,所以请放弃学习的想法。一般来说至少要知道如下几点:? *)程序的运行逻辑结构有顺序(按语句依次执行)、分支结构(IF...THEN...ELSE...),循环结构(FOR...NEXT)三种结构。? *)知道什么是子程序,什么是调用。? *)汇编程序员的视角。不同编程视角编程要求是不一样的。比如删除文件, ????? 用户的视角是找到“删除”按钮或菜单,然后单击一下即可。 ????? 高级程序员的视角是知道删除的文件,并发出删除命令。这些通过API实现。 ????? 汇编程员的视角是得到要删除的文件名,找到该文件所在位置,通过调用删除“中断命令”进行删除。 ????? 操作系统开发人员的视角则是接到删除命令后,先找到系统根目录区,由根目录区的链接依次找到子目录区,直到找到要删除的文件,然后按照操作系统删除文件的规则对该文件名进行修改。比如DOS,只把第一个字符改成?。 ? 按程序语句等价的角度看,一行VB的打印语句,用汇编实现大约需要一百二十多行。知道汇编语言的视角后就要知道,前面的道路是坎坷的,没有耐心是不行的。想通过几分钟几行程序就完成很复杂的操作不是件容易的事。 3学汇编有什么用?汇编产生于DOS时代或更早,而现在是Windows时代,所以可能遗憾地说:尽管还有批牛人在用汇编开发核心级程序,但我们几乎没什么用,除了必要时能拿来分析一两个程序的部分代码之外,别的也就没什么用了。并且并不是所有的汇编命令都能在windows下使用。而泛泛地追求“时髦”而学本语言。劝那些为了当“黑客”而学汇编的人就此止步。第讲 预备知识 1 一个汇编程序的编译过程是怎么样的。 ? 1)首先你需要找一个编辑器,编辑器用任何“纯文本”编辑器都可以。比如记事本。编好以后保存到汇编目录中。扩展名为asm,比如myfirst.asm。但这里建议你找一个能显示出当前行的编译器。这样出错后排错很容易。 ? 2)然后在DOS下进入D:\Masm目录中,输入“masm myfirst.asm,如果有错系统会提示出错的行位置和出错原因。 ? 3)然后再输入“link myfirst.obj”,即可看到当前目录下有一个myfirst.exe程序。 2 宏汇编和汇编有什么区别吗? ? 二者的区别在于前者提供宏,后者不提供。后者已找不到了,所以你可以认为二者没有区别。 3 机器语言、汇编语言、高级语言的关系 ? 最早的计算机采用机器语言,这种语言直接用二进制数表示,通过直接输入二进制数,插拔电路板等实现,这种“编程”很容易出错,每个命令都是通过查命令表实现,既然是通过“查表”实现的,那当然也可以让计算机来代替人查表实现了。于是就产生了汇编语言,所以不管别人怎么定义机、汇语言,我就认为,二者是等价。后来人们发现,用汇编语言编某一功能的时候,连续一段代码都是相同或相似,于是就考虑用一句语言来代替这一段汇编语言,于是就产生了高级语言。因此,所有高级语言都能转化成汇编语言,而所以汇编语言又可转化成机器语言。反之,所有机器语言可以转成汇编语言(因为二者等价)。但并不是所以汇编语言都能转成高级语言。 4 计算机的组成 ? 通常都把计算机定义成五部分:运算器、控制器、存储器、输入系统、输出系统。 ? 为了简单其间,我们如此理解:运算器+控制器=CPU。存储器=内存(暂不包括外存,永不包括CACHE)。输入系统=键盘(不包括鼠标),输入系统=显示器(不包括打印机,绘图仪)。 5 寄存器和内存的区别 ? 寄存器在CPU中。内存在内存条中。前者的速度比后者快100倍左右。后面的程序要求每条指定要么没有内存数据,要么在有一个寄存器的参与下有一个内存数据。(也就是说,不存在只访问内存的指令)。 6 汇编语言的计数 ? 与生活中的计数不一样,汇编中的计数是从0开始的。比如16个计数,则是从0~15,而不是生活中的1~16。这一点看起来简单,真运算起来就不是件容易的事了,不信等着瞧。 7 进制问题 ? 又与生活中不一样的地方是进制。切记下面的常识: ? *)计算机内部存储都用二进制。 ? *)我们的汇编源程序默认都用十进制。(除非你指明类型) ? *)我们用的调试程序debug默认的都是十六进制。(无法指明其他类型) ? 其中十六进制的十六个个位数依次是:0,1,2

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档