首页 汇编语言入门 一

汇编语言入门 一

举报
开通vip

汇编语言入门 一汇编语言入门 一 汇编语言入门 --BY红黑联盟孤独雪狼 第一讲学习汇编前你应该知道的知识 1汇编需要什么工具和程序,到哪里下载? 目前阶段,汇编程序仅需要两个程序就够了。 masm.exe,link.exe。 二者可由下载,前者是编译程序,后者是链接程序。 另外,为了验证和调试程序,还需要一个程序debug.exe,该程序由windows本身就提供,所以就不提供下载地址了。 将二者下载后,放到某一个目录中(任意目录都可以),考虑到很多命令需要通过键盘敲入,所以建议你不要把文件放入到长文件名目录、...

汇编语言入门 一
汇编语言入门 一 汇编语言入门 --BY红黑联盟孤独雪狼 第一讲学习汇编前你应该知道的知识 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目录中,输入"masmmyfirst.asm",如果有错系统会提示出错的行位置和出错原因。 3)然后再输入"linkmyfirst.obj",即可看到当前目录下有一个myfirst.exe程序。 2宏汇编和汇编有什么区别吗? 二者的区别在于前者提供宏,后者不提供。后者已找不到了,所以你可以认为二者没有区别。 3机器语言、汇编语言、高级语言的关系 最早的计算机采用机器语言,这种语言直接用二进制数表示,通过直接输入二进制数,插拔电路板等实现,这种"编程"很容易出错,每个命令都是通过查命令表实现,既然是通过"查表"实现的,那当然也可以让计算机来代替人查表实现了。于是就产生了汇编语言,所以不管别人怎么定义机、汇语言,我就认为,二者是等价。后来人们发现,用汇编语言编某一功能的时候,连续一段代码都是相同或相似,于是就考虑用一句语言来代替这一段汇编语言,于是就产生了高级语言。因此,所有高级语言都能转化成汇编语言,而所以汇编语言又可转化成机器语言。反之,所有机器语言可以转成汇编语言(因为二者等价)。但并不是所以汇编语言都能转成高级语言。 4计算机的组成 通常都把计算机定义成五部分:运算器、控制器、存储器、输入系统、输出系统。 为了简单其间,我们如此理解:运算器+控制器=CPU。存储器=内存(暂不包括外存,永不包括CACHE)。输入系统=键盘(不包括鼠标),输入系统=显示器(不包括打印机,绘图仪)。 5寄存器和内存的区别 寄存器在CPU中。内存在内存条中。前者的速度比后者快100倍左右。后面的程序要求每条指定要么没有内存数据,要么在有一个寄存器的参与下有一个内存数据。(也就是说,不存在只访问内存的指令)。 6汇编语言的计数 与生活中的计数不一样,汇编中的计数是从0开始的。比如16个计数,则 是从0~15,而不是生活中的1~16。这一点看起来简单,真运算起来就不是件容 易的事了,不信等着瞧。 7进制问题 又与生活中不一样的地方是进制。切记下面的常识: )计算机内部存储都用二进制。 )我们的汇编源程序默认都用十进制。(除非你指明类型) )我们用的调试程序debug默认的都是十六进制。(无法指明其他类型) 其中十六进制的十六个个位数依次是:0,1,2,3,4,5,6,7,8,9,A, B,C,D,E,F。 8进制转换 一个比较简单的方法是查表法。 十进制 十六进制 二进制 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111 第一讲基础知识 1访问内存 程序在内存中,访问内存是几乎每一程序都要进行的操作,计算机对内存 编址是线性的,也就是说是一维的,比如256M的内存,地址就应该是从 0~(256M-1),这个地址称为物理地址或绝对地址。 1.1地址表示 但从汇编程序员的角度看,内存却是二维的,要说明一个地址,需要给出 两个值,就象你在平面上指定一点需要说出(X,Y)坐标一样,汇编程序员的内 存视角也需要两个"坐标",前一个称为段地址(Segment),后一个称为偏移地址(Offset),该地址称为逻辑地址。 比如"1234:3DF5"就是一个地址。"1F3F:"不是一个地址,因为他只有段地址,没有编移地址。注意此后的地址都用十六进制表示。 1.2地址计算 前面提到,计算机编址是一维的,汇编程序员是二维的,那么二者怎么换算呢?由后者到前者的换算方法是,"段地址串"后面加个"0",然后再加上偏移地址。 比如"1234:3DF5"(十六进制的加减运算参见相关资料) 1234串后加了一个0得12340,再加上3DF5得到16135,注意此串仍然是十六进制。 所以,汇编程序员眼中的地址"1234:3DF5"就是物理地址(计算机编址):16135。 知道了由后者向前者的转换,那么由前者向后者的转换呢? "不知道",为什么不知道,继续往下看。 1.3到底哪个地址对。 知道了1.2的地址算法后,我又发现一个问题: "1000:6135"的物理地址是多少呢?10000+6135=16135。 "1001:6125"的物理地址呢?10010+6125=16135。 那么到底哪个对呢?问题的回答是这样的:假设我现在让你按一下"L"键,我可以告诉你如下几种方法中的一种或几种。 1请按一下"L"键; 2请按一下键盘上第四行第十个键; 3请按一下第十列中的第四个键; 4请按一下"K"右边的键; 5按标准指法单击一下右手无名指。 举上面的例子也就是说,同一个地址有很多种表示方式,具体用哪一种,要看实际使用时的情况。但无论用哪种方式,只要能达到目的即可。(实际中该问题一般不会受此问题困扰,但初学时突然想不通)。 1.4有多少内存可以访问 无论是段地址还是偏移地址都是四位十六进制(如果不够四位,前面补0)。也就是说:总共可以访问的地址说是:0000:0000~FFFF:FFFF。 总共FFFF0+FFFF+1=10FFF0个地址。也就是不到1M的空间。 记住如下结论: *)不管你实际内存有多少,目前我们只能访问不到1M的空间。 *)而实际上连这1M也用不完。其中上端的384K的址只能读不能写,只能读,一般称为ROM。 *)低端的640K可以读写。但这640K的低端100多K也不能随便写,因此DOS系统使用该区。 *)原来1024M的内存,汇编程序只能使用其中400多K。这段内存的容易相当于一个普通文档的大小。不过这就足够了。
本文档为【汇编语言入门 一】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_841159
暂无简介~
格式:doc
大小:19KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-19
浏览量:8