高级宏汇编语言.ppt
《高级宏汇编语言.ppt》由会员分享,可在线阅读,更多相关《高级宏汇编语言.ppt(19页珍藏版)》请在三一办公上搜索。
1、第七章 高级宏汇编语言,为了象高级语言那样由程序员自定义更复杂的数据类型。80X86提供了宏指令语句,还具有条件汇编的能力。,1.宏指令,在汇编语言源程序中,有些程序段要多次使用,我们引用子程序,但子程序有些缺点,转子和返回在保存和恢复断点寄存器以及参量的传递等开销要增加。若子程序本身较短,需要传递参量较多的情况下,使用宏汇编更方便。一.宏定义和宏调用 1.定义:源程序中一段有独立功能的程序代码。(1)格式:MACRO 形参表 ENDM(2)说明:1)宏在源程序中定义一次,可多次调用。2)宏名称:第一个字母必须是字母,其后跟字母、数字 或下划线字符(=31个字符)3)宏定义体:一组独立功能的程
2、序代码。4)形参(哑参)(虚参):形参间用,分隔。,2.宏调用,(1)格式:实参表(2)说明:1)实参表:实元间用,隔开。实元可以是常数、register、存储单元。2)实元个数一般与哑元的个数相等。实际上,若实元个数哑元个数 多余实元不考虑。若实元个数哑元个数 多余哑元作“空”处理。,3.宏展开宏定义体取代源程序中宏名称。用实元取代哑元。Ex:7.1 用宏指令定义两个字操作数相乘得到一个16位的第三操作数(结果)。,MULTIPLY MACRO OPR1,OPR2,RESULT PUSH DX PUSH AX MOV AX,OPR1 IMUL OPR2 MOV RESULT,AX POP A
3、X POP DX ENDM,宏定义,宏调用,MULTIPLY CX,VAR,XYZ BX,形参,实参,4.宏定义和子程序的区别,子程序:由主程序在执行期间调用,只占自身大小的一个空间。宏定义:宏调用是在汇编期间展开,每调用一次,宏定义体展开一次,因此占有的存储空间与调用次数有关,次数越多,空间愈大。较长的功能段用子程序,较短的且变元较多的功能段用宏定义。,二.宏操作符常用的宏操作符为4个:、%、!,1.连接操作符和文本操作符(1)在定义体中,作为形参的前缀或后缀,展开时,把前后两部分的符号,合并成一个新的符号。EX:J&CONT CONT:NZ JNZ C JC S JS(2)在宏调用时,有的
4、实参中含有空格或逗号,这时用,把一个完整的实参括起来,作为一个单一的实参。Ex:宏定义MULTMACRO OP,RESULT MOV RESULT,AX宏调用MULTM,WORDPTRRES,形参,形参,EX:OP&UL OP:M MUL IM IMUL,宏展开:MOVWORD PTR RES,AX,2.表达式操作符%和字符操作符,(1)%格式:%表达式 功能:取得表达式的值,在展开期间,用这个数取代形参。Ex:P251 7.7(2)!指出!后的字符不作操作符使用,而是以字符本身的意义进行处理。Ex:!%(作为百分号用)三.局部符号伪操作LOCAL宏定义体中,允许使用符号,多次调用宏时,标号会
5、多重定义,处理办法用LOCAL伪操作。1.格式:LOCAL 局部标号名2.说明:LOCAL只能用在定义体中,且是macro伪操作的第一个语句,在macro和local间不允许有注释和分号标志。Ex:P252 7.8,四.宏库(P258),将若干个宏定义组成一个宏库以库文件的形式存放起来。当程序需要使用这些宏定义时,只需用include伪指令说明库文件名,就可以在程序中直接调用库文件中的宏定义,而不需要重复编写这些宏定义。格式:INCLUDE库文件名(扩展名为.LIB)ex:在macro.lib中定义两个宏input macro mov ah,01h int 21h endm disp macr
6、o buf lea dx,buf mov ah,09h int 21h endmex:P259,Ab.asmInclude macro.lib Disp str1InputDisp str2,*其他伪操作,.xall 清单中只列出产生目标代码的宏展开(默认情况).lall宏展开时列出包括注释在内的所有宏展开.sall宏展开时,不列出任何展开的信息;双分号注释,宏展开时,不予展开Ex:P256 7.12,*Purge伪操作用来删除不用的宏定义。用include 语句调用宏库时可以用Purge伪操作删除在调用程序中不用的宏定义。这不会影响宏库中的内容。格式:Purge Ex:purge promp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 汇编语言
链接地址:https://www.31ppt.com/p-6358423.html