网站大量收购独家精品文档,联系QQ:2885784924
  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
December 12, 1999 MatrixOne, Inc Confidential 高级汇编语言技术 本章学习要点 掌握宏汇编的基本概念 理解宏定义、宏调用、宏展开的特点和使用过程 了解重复汇编的基本概念和使用 了解条件汇编的基本概念和使用 高级汇编语言技术 宏指令 宏指令的使用过程 宏操作符 局部符号伪指令LOCAL 宏库的使用 重复汇编 条件汇编 宏指令 为了减少编程的工作量,通常采用两种方法: ①将程序段编写为独立的子程序 ②将程序段定义成宏 将具有一定功能,需多次重复使用,且比较短的程序段定义成一条宏指令。 使用宏指令语句可以减少程序书写错误,缩短源程序长度,使源程序编写像高级语言一样清晰、简洁。使用宏库后,可以提高编程效率。 宏指令的使用过程 宏定义 宏调用 宏扩展 宏定义 带参宏定义 宏指令名 MACRO 形参1,形参2,……  宏体  ENDM 无参宏定义 宏指令 MACRO 宏体 ENDM 宏定义 SUM MACRO NUM1, NUM2, RESULT PUSH AX MOV AX, NUM1 ADD AX, NUM2 MOV RESULT, AX POP AX ENDM 宏调用 格式: 宏指令名 [实参1,实参2,……] 宏指令与子程序的区别 子程序调用由微处理器完成 宏指令调用在汇编过程中由汇编程序完成 子程序调用可以减小目标程序的大小 宏指令调用不能 宏扩展 Display macro BUF LEA DX,BUF MOV AH,9 INT 21H Display endm ┆ Display BUF1 ┆ Display BUF2 形参和实参 宏定义中可以不带任何形参,宏调用时不需提供实参,宏展开后宏体中的所有指令不作修改原样插入到宏调用的宏指令处。 形参可以是操作码或操作数的一部分,但在宏定义体中必须使用分隔符,在宏定义中可作为形参的前缀,展开时把前后的两个符号连接起来,形成操作码、操作数或字符串。 将寄存器内容移位的操作定义为宏指令,并 宏调用。设一个参数时,移位次数为参数CN: SHIFT MACRO CN MOV CL,CN SHL AX,CL ENDM 宏调用时提供相应的实参数值: SHIFT 4 设两个参数时,参数为寄存器和移位次数: SHIFT MACRO CN,R MOV CL,CN SHL R,CL ENDM 宏调用提供移位次数和寄存器: SHIFT 4,al 宏定义: SHIFT MARCO X,Y,Z MOV CL,X SZ Y,CL ENDM 上例被调用时: SHIFT 4,AL,CL SHIFT 6,BX,AR 则宏展开时的目标代码:+ MOV CL,4 + SAL AL,CL + MOV CL,6 + SAR BX,CL 在程序设计中,对堆栈段的定义语句基本相同,只是堆栈段的长度和初值不同。所以可以先定义一个宏(放在宏库中),供随时取用,为编程带来很大方便。宏定义如下: MSTACK MACRO XYZ STACK SEGMENT STACK DB XYZ STACK ENDS ENDM 宏调用时: MSTACK 〈100 DUP(?)〉 宏展开为: + STACK SEGMENT STACK + DB 100 DUP(?) + STACK ENDS 宏库的使用 语句格式:INCLUDE 库文件名 假设已建立一名为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 RETURN MACRO MOV AH,2 MOV DL,0AH INT 21H MOV DL,0DH ;回车换行 INT 21H ENDM OUT2 MACRO A MOV DL,A MOV AH,2 ;2号系统功能调用 INT 21H

文档评论(0)

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

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

1亿VIP精品文档

相关文档