网站大量收购闲置独家精品文档,联系QQ:2885784924

汇编语言程序设计 第二版 hb_ch7.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章高级宏汇编语言 7.1 宏指令 7.2 条件汇编指令 7.3 重复汇编指令 7.4 结构与记录 第7章高级宏汇编语言 7.1 宏指令 7.2 条件汇编指令 7.3 重复汇编指令 7.4 结构与记录 7.1 宏指令 宏是源程序中一段有独立功能的程序代码。它只需要在源程序中定义一次,就可以多次被调用。调用时只需要由这个宏的名字构成一条语句,如同使用一条指令一样,为了与机器指令相区别,我们称这个宏的名字为宏指令。 宏的使用要经过三个步骤:宏定义,宏调用,宏展开。 7.1 宏指令 宏定义与宏结束指令 参数的使用 宏中的编号处理 宏嵌套 宏与子程序的区别 宏定义与宏结束指令 1.宏定义 2.宏调用与宏展开 3.宏指令的有效范围 4.宏库 宏定义与宏结束指令 1.宏定义 (1)不带参数的宏定义 MNAME MACRO … }宏体 ENDM (2)带参数的宏定义 MNAME MACRO [DUMPAR1][,DUMPAR2]… … }宏体 ENDM 宏定义与宏结束指令 2.宏调用与宏展开 一个具有独立功能的程序段被定义为宏以后,就可以在源程序中调用了。在操作码段写上宏名,也就是使用宏指令,称为宏调用。 “先定义,后使用”是宏指令调用的原则,调用格式为 MNAME 或 MNAME PAR1,PAR2,… 宏定义与宏结束指令 例7.1 字变量加法。 宏定义与宏结束指令 宏定义与宏结束指令 3.宏指令的有效范围 宏指令的优先级最高。可以定义与指令助记符、伪操作同名的宏,此时,同名机器指令或伪操作失效。只有用PURGE伪操作取消宏定义,才能恢复同名机器指令或伪操作的原始含义。 PURGE伪操作可同时取消多个宏定义,被取消的宏名之间用逗号分隔。格式为: PURGE MNAME1 [,MNAME2][,MNAME3]… 其中:MNAME1,MNAME2,MNAME3,…是宏定义名,多个将被取消的宏定义名用逗号分开。 宏定义与宏结束指令 4.宏库 如果希望某些宏定义能被多个程序调用,可以将这些宏定义放在一起以库文件的形式存放起来,这个库文件就是宏库。当一个源程序需要使用这些宏定义时,可以在程序中使用INCLUDE伪指令,其语句格式为: INCLUDE HNAME HNAME是库文件名,其扩展名为.LIB。 参数的使用 经常使用的宏操作符 ①连接操作符 ②文本操作符 ③表达式操作符% ④字符操作符! 参数的使用 ①连接操作符 操作符在宏定义体中可以作为形参的前缀,宏展开时将前后两个符号连接形成一个符号。 参数的使用 ②文本操作符 在宏调用时,有的实参含空格或逗号,这时就必须使用文本操作符把一个完整的实参括起来,作为一个单一的实参。 参数的使用 ③表达式操作符% %操作符在宏调用时用在实参的前面,格式是: %表达式 汇编语言用%后表达式的值而不是表达式文本来取代对应的形参。 参数的使用 ④字符操作符! !操作符用在宏调用中,格式是: !宏操作符 !操作符告诉宏汇编程序,其后的字符不作操作符使用,而是以字符本身的意义进行处理。 参数的使用 与宏中形参字符串对应的实参可以是数值、指令、寄存器名、存储单元名以及用寻址方式能找到的地址或表达式等。 参数的使用 例7.2 加减法运算。参数OP代表指令。 参数的使用 参数的使用 例7.3 寄存器循环移位。参数DIR代表指令的一部分,参数REG代表寄存器。 宏中的标号处理 在一个源程序中使用的标号必须惟一,这是编写汇编语言源程序的一个原则,否则为重复定义错误。如果宏定义体中有一个或多个标号,那么经多次宏调用后就会出现标号重复定义的情况,这是不允许的。 宏中的标号处理 LOCAL伪操作是解决这个问题的有效方法,其格式是: LOCAL LAB1[,LAB2]… LAB1,LAB2,…是宏定义中出现的标号。多个局部标号之间用逗号隔开。汇编程序对LOCAL伪指令声明的每一个标号按照它遇到的次序建立惟一的标号(??0000~??FFFF)。 宏嵌套 1. 宏定义中可以嵌套宏调用 2. 宏定义中可以嵌套宏定义 宏嵌套 1. 宏定义中可以嵌套宏调用 例7.4 非组合BCD码转换成ASCII码。 宏嵌套 2. 宏定义中可以嵌套宏定义 例7.5 字变量加减。 宏与子程序的区别 子程序是主程序在程序执行时由CPU执行CALL指令调用的,它一直是占有自身大小的一个空间。但是其为转子及返回、保存及恢复寄存器以及参数的传送等都要增加程序的开销,尤其是时间上的开销,运行速度较低。 宏是汇编程序在汇编过程中通过宏体替换宏指令展开的,经汇编连接为可执行程序,因而可以免去执行时间上的额外开销,运行速度较高。但

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档