汇编语言入门教程–第七章宏定义.ppt

汇编语言入门教程–第七章宏定义.ppt

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

宏结构程序设计 宏汇编 重复汇编 条件汇编 ——统称宏结构 宏汇编 宏——具有宏名的一段汇编语句序列 ——宏定义时书写 宏指令——这段汇编语句序列的缩写 ——宏调用时书写 宏展开——宏指令处用这段宏代替的过程 ——宏汇编时实现 宏的参数功能强大,颇具特色 配合宏,还有宏操作符和有关伪指令 宏操作符总结 ;;——宏注释符,用于表示在宏定义中的注释。采用这个符号的注释,在宏展开时不出现 ——替换操作符,用于将参数与其他字符分开。如果参数紧接在其他字符之前或之后,或者参数出现在带引号的字符串中,就必须使用该伪操作符 ——字符串传递操作符,用于括起字符串。在宏调用中,如果传递的字符串实参数含有逗号、空格等间隔符号,则必须用这对操作符,以保证字符串的完整 !——转义操作符,用于指示其后的一个字符作为一般字符,不含特殊意义 %——表达式操作符,用在宏调用中,表示将后跟的一个表达式的值作为实参,而不是将表达式本身作为参数 ;宏定义 dstring macro string db ’string’,0dh,0ah,’$’ endm ;宏调用 dstring This is a example. dstring 0 ! Number ! 10 ;宏展开 1 db ’This is a example.’, 0dh,0ah,’$’ 1 db ’0 Number 10’, 0dh,0ah, ’$’ 与宏有关 的伪指令 局部标号伪指令 LOCAL 标号列表 宏定义体采用了标号,应使用LOCAL加以说明 它必须是宏定义MACRO语句之后的第一条语句 宏定义删除伪指令 PURGE 宏名表 不需要某个宏定义时,可以把它删除 宏定义退出伪指令 EXITM 伪指令EXITM表示结束当前宏调用的展开 宏结构的作用 宏汇编、重复汇编和条件汇编 为源程序的编写提供了很多方便, 灵活运用它们可以编写出非常 良好的源程序来 汇编系统中有些以圆点起始的 伪指令(如.startup、.exit等) 实际上是一种宏结构 例题 dstring MACRO string ;;定义字符串 db string,0dh,0ah,$ ENDM mainbegin MACRO dsseg ;;设置数据段地址 mov ax,dsseg mov ds,ax ENDM dispmsg MACRO message mov dx,offset message mov ah,09h int 21h ENDM 例题 mainend MACRO retnum ;;返回DOS,可不带参数 ifb retnum mov ah,4ch ;;没有参数 else mov ax,4c00h+(retnum AND 0ffh) ;; 有参数 endif int 21h ENDM 例题 .model small .stack 256 .data msg1 equ this byte dstring Hello,Everybody !! msg2 equ this byte dstring You see,I made it. .code start: mainbegin @data ;建立DS内容 dispmsg msg1 ;显示msg1字符串 dispmsg msg2 ;显示msg2字符串 mainend ;返回DOS end start * 宏(Macro)是汇编语言的一个特点,它是与子程序类似又独具特色的另一种简化源程序的方法 第一章 基础知识 第七章 高级汇编语言技术 第一章 基础知识 第七章 高级汇编语言技术 其中哑元表给出了宏定义中所用到的形式参数(或称虚参),每个哑元之间用逗号隔开 第一章 基础知识 第七章 高级汇编语言技术 第一章 基础知识 第七章 高级汇编语言技术 第一章 基础知识 第七章 高级汇编语言技术 第一章 基础知识 第七章 高级汇编语言技术 第一章 基础知识 第七章 高级汇编语言技术 变元是操作码的一部分,必须用‘’符号作为分隔符 第一章 基础知识 第七章 高级汇编语言技术 是一个操作符,它在宏定义体中可以作为哑元的前缀,展开时可以把前后两个符号合并而形成一个符号,这个符号可以是操作码、操作数或是一个字符串。下面两个例子进一步具体说明这个问题。 第一章 基础知识 第七章 高级汇编语言技术 第一章 基础知识 第七章 高级汇编语言技术 第一章 基础知识 第七章 高级汇编语言技术 注意: 如果程序中多次调用该宏定义时,展开后台出现标号的多重定义,这是不能允许的。汇编程序对LOCAL伪操作的局部标号表中

文档评论(0)

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

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

1亿VIP精品文档

相关文档