[计算机]汇编课件.pptVIP

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机]汇编课件

第7章 高级汇编语言技术 7.1 宏汇编 7.2 重复汇编 7.3 条件汇编 7.1 宏汇编 7.1.1 宏定义、宏调用和宏展开 7.1.2 宏定义中的参数 7.1.3 LOCAL伪操作 7.1.4 在宏定义中使用宏 7.1.5 列表伪操作 7.1.6 宏库的建立与调用 7.1.7 PURGE伪操作 7.1.1 宏定义、宏调用和宏展开 宏是源程序中一段有独立功能的程序代码。 宏定义是用一组伪操作来实现的,定义后的指令叫宏指令,其格式为: macro name MACRO [dummy parameter list] ┆ ENDM 其中dummy parameter list称为哑元表。 宏调用与宏展开 定义后的宏指令就可以在源程序中调用,称为宏调用。宏调用的格式为: macro name [actual parameter list] 其中actual parameter list称为实元表。 当源程序被汇编时,汇编程序将对每个宏调用做宏展开。宏展开就是用宏定义体取代源程序中的宏指令名,而且用实元取代宏定义中的哑元。 【例7.1】用宏指令定义2个字操作数相乘,得到一个字作为结果 宏定义: MULTIPLY MACRO OPR1,OPR2,RESULT PUSH DX PUSH AX MOV AX,OPR1 IMUL OPR2 MOV RESULT,AX POP AX POP DX ENDM 宏调用: MULTIPLY CX,VAR,XYZ[BX] MULTIPLY 240,BX,SAVE 7.1.2 宏定义中的参数 【例7.2】宏定义可以无变元 【例7.3】变元可以是操作码 【例7.4】【例7.5】变元可以是操作码的一部分,为分隔符 【例7.6】变元可以是ASCII串 【例7.7】%的使用 【例7.2】宏定义可以无变元 宏定义: SAVEREG MACRO PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI ENDM 宏调用: SAVEREG 【例7.3】变元可以是操作码 宏定义: FOO MACRO P1,P2,P3 MOV AX,P1 P2 P3 ENDM 宏调用: FOO WORD_VAR,INC,AX 宏展开: 1 MOV AX,WORD_VAR 1 INC AX 【例7.4】变元可以是操作码的一部分,但在宏定义体中必须用作为分隔符. 宏定义: LEAP MACRO COND,LAB JCOND LAB ENDM 宏调用: LEAP Z,THERE LEAP NZ,HERE 宏展开: 1 JZ THERE 1 JNZ HERE 【例7.5】 宏定义: FO MACRO P1 JMP TAP1 ;这里不能写成JMP TAP1 ENDM 宏调用: FO WORD_VAR 宏展开: 1 JMP TAWORD_VAR 【例7.6】变元可以是ASCII串 宏定义: MSGGEN MACRO LAB,NUM,XYZ LABNUM DB ‘HELLO MR.XYZ’ ENDM 宏调用: MSGGEN MSG,1,TAYLOR 宏展开: 1 MSG1 DB ‘HELLO MR.TAYLOR’ 7.1.3 LOCAL伪操作 【例7.8】宏定义体中允许使用标号 ABSOL MACRO OPER CMP OPER,0 JGE NEXT NEG OPER NEXT: ENDM 如果程序中多次调用该宏定义,则展开时会出现标号的重复定义,这是不允许的。为此系统提供了LOCAL伪操作,其格式为: LOCAL list of local labels 本例应定义为: ABSOL MACRO OPER LOCAL NEXT CMP OPER,0 JGE NEXT

您可能关注的文档

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档