- 1、本文档共56页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章-第01讲-宏汇编语言
常量只要用作指令中的立即操作数,也可以作为寻址方式中的组成部分,例如作为变址寻址和基址加变址寻址方式中的位移量来使用,另外常量还可以再数据定义中给变量赋初值。在宏汇编语言中,符号常量的定义可以采用两种方式,一种是采用EQU进行定义,一种是采用=号进行定义。 * 符号常量定义后,就可以直接使用符号名进行使用了。需要注意的是,符号常量不实际分配存储单元,他只是建立了等价的代换关系,当符号常量出现在代码中时,汇编程序将在汇编的过程中将符号常量直接转换为等价的数值常量。 * 下面我们通过代码示例来学习符号常量的使用方法,如例所示,定义了2个符号常量,分别是NUMBER和COUNT,执行之后AX寄存器的内容为4,SI寄存器的内容是35,TAB变量的偏移地址是0,这是因为符号常量只是建立等价的代换关系,他实际上不占用存储空间。 * 再来看这段代码示例,可以看出符号常量的定义也可以出现在代码段中。在这里需要注意的是同学们需要区分符号常量和变量之间的差别。变量需要分配存储空间,有数据类型的概念,而符号常量只是一种等价的代换关系。 * 下面我们来阅读这段C语言的代码,来看看使用符号常量的好处。如题,定义1个大小为10的存放成绩的数组,输入数据,求和并且对结果进行排序。如果不适用符号常量,直接使用数值,代码维护起来比较麻烦,并且可读性不大好。 * 下面我们来看一看关于符号常量的几个问题。 * 问题1,符号常量定义在什么地方。在80X86宏汇编语言中,符号常量可以出现在段内,也可以出现在段外,几乎可以出现在代码定义中的任何地方。问题2,符号常量可以先使用,后定义吗。在80X86中,是允许先使用符号常量再定义符号常量的。问题3,能否对同一个符号常量进行定义。在前面讲到符号常量的定义有两种方式,一种采用EQU进行定义,一种采用=进行定义,使用=好定义的符号常量可以重复定义,使用EQU定义的符号常量不允许重复定义。 * 问题4,80X86宏汇编语言是怎么替换符号常量的。80X86宏汇编语言采用的是2遍扫描的方式对符号常量进行替换。第1遍扫描时,首先充源程序的第1行开始,顺序对源程序进行扫描,如果该行是定义符号常量,那么首先检查该符号常量是否已在符号表中,如果不在符号表中,那么将该符号添加到符号表中,如果存在,使用新值替代就只。如果扫描到某一行是在引用符号常量,那么在符号表中进行查找,若存在,用符号常量的值替代符号常量,若不存在则不替换。 * 第2遍扫描是对第1遍扫描中尚未替换的符号常量进行替换,如果仍然在符号表中找不到定义那么报告语法错误,否则进行替换。 * 下面我们再来学习数值表达式,所谓数值表达式就是由常量和运算符组成的有意义的式子。前面所介绍的一个常量也是一种数值表达式。更多的是通过运算符和括号连接起来的数值表达式。运算符包括算术运算符、逻辑运算符和关系运算符。算术运算符包括加、减、乘、除、取模、右移和左移等,逻辑运算包括与、或、异或和非操作,关系运算符包括等于、不等于、小于、大于、小于等于和大于等于等。 * 加减乘除,同学们比较熟悉,在这里不再讲解。我们来看一下取模运算,取模就是计算两正数相除后的余数,如例所示。右移和左移运算的特点就是在空位补0。 * 逻辑运算的特点是按照Bit位进行的,与运算又称为逻辑乘运算。或运算又称为逻辑加运算。需要注意的是这些逻辑运算都是严格按照位进行的,也就是不涉及到进位或借位的操作。 * 在80X86宏汇编语言中,关系运算使用文字形式来表示的,而不是用大家所熟悉的符号来表示的。即用EQ来表示相等,NE表示不等等。当关系成立时,运算的结果为0FFH,当关系不成立是,运算的结果为0。 * 各运算符的运算优先级如图所示,同学们在使用运算符时,如果对运算符的优先级不确定,可以采用括号将运算表达式括起来,以避免产生错误。 * 数值表达式是由常量和运算符组成的,究其实质仍然是1个常量,因此在汇编期间可以计算数值表达式的结果。在80X86中,数值表达式实际也是由汇编程序计算的,并且直接将结果替换原来的数值表达式。 * 下面我们来学习变量表达式。变量是数据段或附加数据段中一个数据存储单元的名字,他是这个存储单元地址的符号表示形式。由于变量代表的是一个存储单元,因此变量就有偏移地址和单元中内容两种说法,同学们需要区分地址和内容这两种概念,不要相互混淆。 * 在使用变量时,需要注意哪些事项呢。首先必须明确的是变量具有3个基本的属性,段属性、偏移地址属性和类型属性。所谓段属性,就是变量定义在哪个短重,如果要访问某个变量,该变量所在的段的段首地址必须在某一个段寄存器中,即为CPU当前可访问的段。所谓偏移地址就是该变量所占存储单元到所在段的段首地址的字节距离。变量的数据类型实质存取该变量中的数据时需要的字节数,变量的数据类型由定义该变量时所使
您可能关注的文档
- 第三章-取用水合理性分析.ppt
- 第三章-国际贸易中心区的形成与转移.ppt
- 第三章-多元回归模型.ppt
- 第三章-多元回归模型20120907.ppt
- 第三章-女性生理特点-1.ppt
- 第三章-寻址方式和汇编指令.ppt
- 第三章-市场经济和价值规律.ppt
- 第三章-微机原理、汇编与接口技术-第二版-朱定华版.ppt
- 第三章-微波传输线-4微带线.ppt
- 第三章-推销员的礼仪(第1、2次课).ppt
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)