h控制结构和宏.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
h控制结构和宏.ppt

3.7.2 宏指令中参数的使用 带参数使宏指令更具灵活性。 宏指令的参数可以是常数、寄存器、存储单元和操作码,还可以是表达式。 例3.70 定义一条宏指令CHAN,实现对指定寄存器的运算。 CHAN MACRO REG,COM,NUM AND REG,0FH COM REG,NUM ENDM 此后,可有如下格式的各种宏调用: CHAN BL,OR,30H CHAN AL,SUB,5 在汇编时,宏指令 CHAN BL,OR,30H 扩展成如下的代码: 1 AND BL,0FH 1 OR BL,30H 3.7.3 宏与子程序的区别 两种方法均能达到简化源程序的目的,但有质的不同。 两者的区别: 1.关于目标程序。 2.关于参数传递。宏调用时的参数由汇编程序通过实参替换形参的方式实现传递,所以参数很灵话。子程序调用时的参数须通过寄存器、堆栈或约定的内存单元传递。 3.关于时间开销。宏调用是在汇编时完成,所以不需要额外的时间开销。子程序调用和子程序返回均需要时间,且还涉及堆栈。 4 .宏要先定义后调用。 宏指令:可简化源程序。当程序片段不长,解决的主要矛盾是速度。 子程序:可简化源程序和目标程序。当程序片段较长,额外操作所附加的时间就不明显,解决的主要矛盾是节约存储空间。 3.7.4 与宏有关的局部变量说明伪指令LOCAL 在程序中多次使用宏指令时,避免宏展开出现标号重复定义错误,可用伪指令LOCAL说明宏的局部标号。 伪指令LOCAL的一般格式如下: LOCAL 标号表 ;逗号分隔 汇编程序在每次展开宏时,总把由LOCAL伪指令说明的标号用唯一的符号(??0000至??FFFF)代替,从而避免标号重定义错误。 LOCAL伪指令用于宏定义内,作为宏定义伪指令MACRO后的第一条语句,在MACRO和LOCAL伪指令之间不允许有分号。 例3.71 CHANGE1 MACRO LOCAL LP AND AL,0FH ;屏蔽高4位 CMP AL,‘A’ JB LP ;不大于9时转 ADD AL,7 LP: ADD AL,30H ENDM 如果在程序中有如下宏调用: …… CHANGE1 …… CHANGE1 …… 那么,在汇编时就得到如下宏扩展: …… 1 AND AL,0FH 1 CMP AL,‘A’ 1 JB ??0000 1 ADD AL,7 1 ??0000:ADD AL,30H …… 1

文档评论(0)

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

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

1亿VIP精品文档

相关文档