- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
伪指令
一、与宏有关的伪指令
在宏定义时,为了满足某种特殊需要,汇编语言还提供了几个伪指令。?9.3.1?局部标号伪指令LOCAL?在宏定义体中,如果存在标号,则该标号要用伪指令LOCAL说明为局部标号,否则,当在源程序中,有多于一次引用该宏时,汇编程序在进行宏扩展后将会给出:标号重复定义的错误。?伪指令LOCAL的一般格式如下:?LOCAL 标号1,?标号2,?……?伪指令LOCAL必须是伪指令MACRO后的第一条语句,并且在MACRO和LOCAL之间也不允许有注释和分号标志。?汇编程序在每次进行宏扩展时,总是把由LOCAL说明的标号用一个唯一的符号(从??0000到??FFFF)来代替,从而避免标号重定义的错误。?例9.7?编写求一个求绝对值的宏。?解:?方法1:?ABSMACROword1?CMPword1,?0?JGEnext?NEGword1?next:?ENDM?假设对宏ABS有以下两次引用,点击它们将会显示汇编程序对它们进行宏扩展后所得到程序片段:? ABS??BX?? 1 ?CMP BX,?0? 1 ?JGE ?next? 1 ?NEG BX? 1 next:?…? ABS??AL?? 1 ?CMP AL,?0? 1 ?JGE ?next? 1 ?NEG AL? 1 next:?在上述程序片段中,显然标号next定义了二次,所以,汇编程序将显示“标号重复定义”的错误信息。为了避免这种情况的发生,我们需要用下面的方法来定义该宏。?方法2:?ABSMACROword1?LOCALnext?CMPword1,?0?JGEnext?NEGword1?next:?ENDM?假设对宏ABS有以下两次引用,点击它们将会显示汇编程序对它们进行宏扩展时所得到程序片段:? ABS??BX?? 1 CMP BX,?0? 1 JGE ???0000? 1 NEG BX? 1 ??0000:?…? ABS??AL?? 1 CMP AL,?0? 1 JGE ??0001? 1 NEG AL? 1 ??0001:?在上述程序片段中,宏体内部的局部标号next分别用符号??0000和??0001来对应它的二次引用。因此,汇编程序不会再显示“标号重复定义”的错误信息。?伪指令LOCAL在子程序中也可起作用(参见7.5.10节),但它的作用与宏定义的作用是不同的,有关该伪指令在子程序的宏定义***能的主要差异如表9.1所列。?表9.1?伪指令LOCAL在子程序和宏中的比较?在子程序中在宏定义中?语句的位置在所有指令之前在所有指令之前?伪指令的作用说明局部变量说明局部标号?伪指令的格式可用一条伪指令来说明多个局部变量,也可连续用多条伪指令来说明可用一条伪指令来说明多个局部标号,也可连续用多条伪指令来说明?调用或引用子程序的不同调用,其局部变量名保存不变在每次宏引用的扩展时,将会自动产生出一个唯一的局部标号
二、取消宏定义伪指令
伪指令PURGE的一般格式如下:?PURGE 宏名1,?宏名2,?……?该伪指令通知汇编程序取消“宏名1,?宏名2,?……”宏名表中的宏定义。在此语句后,如果还有这些宏的引用语句,则汇编程序不会把它们当作宏引用来进行扩展,并且还将显示出错信息。?伪指令PURGE的使用频率较低。?9.3.3?中止宏扩展伪指令?伪指令EXITM的一般格式如下:?EXITM?该伪指令书写在宏定义体中,用来告诉汇编程序:如果遇到该伪指令,那么,立即中止对该伪指令之下语句的扩展。如果在嵌套的内层宏中遇到了该伪指令,则退出到宏嵌套的外层。?在一般情况下,伪指令EXITM与条件伪指令一起使用,以便在不同的条件下挑选出不同的语句。?伪指令EXITM的使用频率也很低。
三、重复汇编伪指令
在编写源程序时,有时会出现连续相同或相似的语句(组)。当出现这种情况时,可利用重复伪指令来重复语句,从而达到简化程序的目的。?重复汇编伪指令所定义的重复块是宏的一种特殊形式,也是由伪指令ENDM来结束重复块。用重复汇编伪指令定义的重复块也可带有参数,并在汇编过程中参数被实参代替,但重复块不会被命名,不能在程序的其它地方引用。?9.4.1?伪指令REPT?伪指令REPT的作用是把一组语句重复指定的次数,该重复次数由伪指令后面的数值表达式来确定。其一般使用格式如下:?REPT数值表达式?重复的语句组?ENDM?例9.8?定义100个初值为32的字节单元,该存储单元的起始符号地址为Ta
您可能关注的文档
- 五金工具市场分析调查及投资前景行业报告2018目录.doc
- 五金材料[42P][952KB].pdf
- 亚瑟王2——图文攻略.pdf
- 亦庄培训公司.ppt
- 五合国际 新湖中宝 青蓝国际-中心会所3.11.pdf
- 亚马逊投了2.5亿美元的这个新节目,有什么好看的?.pdf
- 亲民级价位游戏主机四核X4 760K+独显HD7750.doc
- 亮点都能当探照灯了,这些图看一遍,爽10次!~~~高冷的我分分钟破功!.pdf
- 人人都能红 15 分钟?别闹了,也就15 秒的事吧.pdf
- 亲测:m2.ssd迁移系统之暴力版.doc
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)