第七章高级汇编技术.pptVIP

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

* * 第七章 高级汇编技术 7.1 宏汇编 7.2 重复汇编和条件汇编 7.1宏汇编 宏指令:由标识符表示的,内含若干指令序列的指令称为宏指令。 宏汇编:能够处理宏指令的汇编语言。 7.1.1 宏指令的定义、调用和展开 1、宏定义 (1)带参宏定义 宏指令名 MACRO 形参1,形参2,……   ……宏体  ENDM (2)无参宏定义 宏指令名 MACRO ……宏体 ENDM 2、宏调用 无参数宏调用 宏指令名 带参数宏调用 宏指令名 实参1,实参2,…… 注:对于带参数的宏调用,实参应与定义时的形参一一对应。个数也应一致。实参类型可以是常数、寄存器、变量名、表达式等。 宏定义举例 DISP MACRO MSG MOV AH,9 LEA DX,MSG INT 21H ENDM 设有:STR1 DB ‘WELCOME’ STR2 DB ‘ACCESS DENIED’ 宏调用举例 DISP STR1 ; 显示WELCOME DISP STR2 ;显示ACCESS DENIED 宏展开 宏汇编程序汇编到宏指令时回把宏指令用宏体代替,并用实参代替宏体中的形参。 例: DISP STR1 宏展开后:+ MOV AH,9 + LEA DX,STR1 + INT 21H 7.1.2 宏操作符 1、连接符 在宏定义时使用,用于形参的前面或后面,展开时对应的实参可与其前或其后的符号连接构成一个新符号。从而使宏定义更具通用性。 例 :对某寄存器或存储单元进行若干次逻辑或算术移位的宏定义。 SHIFT_VAR MACRO R_M,DIRECT,COUNT MOV CL,COUNT SDIRECT R_M,CL ENDM 调用: 对AX逻辑左移两位 对DX算术右移4位 SHIFT_VAR AX,HL,2 SHIFT_VAR DX, AR,4 2、表达式操作符% 格式:% 表达式 告诉汇编程序获取表达式的值,而不是表达式本身。 %操作符常在宏调用中使用,不允许出现在形参前面。 例 COUNT=4 SHIFT_VAR AX,HL,%COUNT 宏展开:+MOV CL,4 +SHL AX, CL 3、文本操作符〈 〉 如果实参由字符、空格或逗号构成,这时 必须将实参用〈 〉括起来,作为一个整体。 例: EXG MACRO BUF1,BUF2,REG MOV REG,BUF1 XCHG REG,BUF2 MOV BUF1,REG 宏调用: EXG 〈BYTE PTR VAR1 〉 ,〈BYTE PTR VR2〉, AL 4、字符操作符 ! 格式:!字符 功能:告诉汇编程序,其后的字符不做操作符使用,而是作为一般字符进行处理。 例 :! 【例4.20】表达符操作%示例。 DATA1 MACRO A, B, C, D DW A, B, C DB D DUP(0) ENDM 如果宏调用为: X=10 Y=20 DATA1 %X+2, 5,%X+Y, %Y- 5 DATA1 !%X+2,5,!%X+Y,%Y-5 5、宏注解符 ;; 格式:;;注解文本 宏展开不出现注解文本。 7.1.3 LOCAL 伪指令 格式:LOCAL 〈符号表〉 其中符号表是宏定义中的变量名和标号,用逗号间隔,宏展开时,对LOCAL 伪指令指定的变量名和标号自动生成格式为“?? ××××”的符号,其中××××为0000~FFFF的十六进制。 说明:LOCAL语句在宏体的第一条语句。 宏程序库 可将定义好的若干个宏定义组成一个宏库以库文件的形式保存起来,当程序需要这些宏定义时,只需要用INCLUDE 伪指令来说明库文件名,就可直接使用库文件中宏定义。而不需要重复定义。 说明: 保存库文件时扩展名为.LIB 假设已建立一名为MACRO.LIB的宏库 INPUT MACRO A LEA DX,A MOV AH,10 ;10号系统功能调用 INT 21H ENDM PRINT MACRO A LEA DX,A MOV AH,9 ;9号系统功能调用 INT 21H ENDM 例:现要从键盘输入一串字符到系统缓冲区,然后将打印字符串,采用调用宏库的办法,其程序如下: INCLUDE MACRO.LIB DATA SEGMENT STR1 DB ‘DJFD

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档