欢迎来到天天文库
浏览记录
ID:57062012
大小:127.50 KB
页数:54页
时间:2020-07-30
《《汇编语言程序设计》第7章 高级宏语言课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章高级宏汇编语言第7章高级宏汇编语言7.1宏指令7.2条件汇编指令7.3重复汇编指令7.4结构与记录第7章高级宏汇编语言7.1宏指令7.2条件汇编指令7.3重复汇编指令7.4结构与记录7.1宏指令宏是源程序中一段有独立功能的程序代码。它只需要在源程序中定义一次,就可以多次被调用。调用时只需要由这个宏的名字构成一条语句,如同使用一条指令一样,为了与机器指令相区别,我们称这个宏的名字为宏指令。宏的使用要经过三个步骤:宏定义,宏调用,宏展开。7.1宏指令宏定义与宏结束指令参数的使用宏中的编号处理宏嵌套宏与子程序的区别宏定义与宏结束指令7.1宏指令1.宏定义2.
2、宏调用与宏展开3.宏指令的有效范围4.宏库宏定义与宏结束指令7.1宏指令1.宏定义(1)不带参数的宏定义MNAMEMACRO…}宏体ENDM(2)带参数的宏定义MNAMEMACRO[DUMPAR1][,DUMPAR2]……}宏体ENDM宏定义与宏结束指令7.1宏指令2.宏调用与宏展开一个具有独立功能的程序段被定义为宏以后,就可以在源程序中调用了。在操作码段写上宏名,也就是使用宏指令,称为宏调用。“先定义,后使用”是宏指令调用的原则,调用格式为MNAME或MNAMEPAR1,PAR2,…宏定义与宏结束指令7.1宏指令例7.1字变量加法。宏定义与宏结束指令7.1
3、宏指令DSEGSEGMENTV1DW1234HV2DW1111HV3DW?DSEGENDSSSEGSEGMENTSTACKSTKDB20DUP(0)SSEGENDSCSEGSEGMENTASSUMEDS:DSEG,SS:SSEG,CS:CSEGDADDMACROX,Y,Z;宏定义PUSHAXMOVAX,XADDAX,YMOVZ,AXPOPAXENDMSTART:MOVAX,DSEGMOVDS,AXMOVAX,SSEGMOVSS,AXMOVSP,LENGTHSTKDADDV1,V2,V3;宏调用MOVAH,4CHINT21HCSEGENDSENDSTART宏定
4、义与宏结束指令7.1宏指令3.宏指令的有效范围宏指令的优先级最高。可以定义与指令助记符、伪操作同名的宏,此时,同名机器指令或伪操作失效。只有用PURGE伪操作取消宏定义,才能恢复同名机器指令或伪操作的原始含义。PURGE伪操作可同时取消多个宏定义,被取消的宏名之间用逗号分隔。格式为:PURGEMNAME1[,MNAME2][,MNAME3]…其中:MNAME1,MNAME2,MNAME3,…是宏定义名,多个将被取消的宏定义名用逗号分开。宏定义与宏结束指令7.1宏指令4.宏库如果希望某些宏定义能被多个程序调用,可以将这些宏定义放在一起以库文件的形式存放起来,这
5、个库文件就是宏库。当一个源程序需要使用这些宏定义时,可以在程序中使用INCLUDE伪指令,其语句格式为:INCLUDEHNAMEHNAME是库文件名,其扩展名为.LIB。参数的使用7.1宏指令经常使用的宏操作符①连接操作符&②文本操作符<>③表达式操作符%④字符操作符!参数的使用7.1宏指令①连接操作符&&操作符在宏定义体中可以作为形参的前缀,宏展开时将&前后两个符号连接形成一个符号。参数的使用7.1宏指令②文本操作符<>在宏调用时,有的实参含空格或逗号,这时就必须使用文本操作符<>把一个完整的实参括起来,作为一个单一的实参。参数的使用7.1宏指令③表达式操
6、作符%%操作符在宏调用时用在实参的前面,格式是:%表达式汇编语言用%后表达式的值而不是表达式文本来取代对应的形参。参数的使用7.1宏指令④字符操作符!!操作符用在宏调用中,格式是:!宏操作符!操作符告诉宏汇编程序,其后的字符不作操作符使用,而是以字符本身的意义进行处理。参数的使用7.1宏指令与宏中形参字符串对应的实参可以是数值、指令、寄存器名、存储单元名以及用寻址方式能找到的地址或表达式等。参数的使用7.1宏指令例7.2加减法运算。参数OP代表指令。参数的使用7.1宏指令宏定义:MOPMACROOP,X,Y,ZPUSHAXMOVAX,XOPAX,YMOVZ,
7、AXPOPAXENDM宏调用及宏展开:MOPADD,DA1,DA2,+PUSHAX+MOVAX,DA1+ADDAX,DA2+MOVWORDPTRRES,AX+POPAXMOPSUB,DA1+2,DA2+2,+PUSHAX+MOVAX,DA1+2+SUBAX,DA2+2+MOVWORDPTRRES+2,AX+POPAX参数的使用7.1宏指令例7.3寄存器循环移位。参数DIR代表指令的一部分,参数REG代表寄存器。宏定义:REGROLMACRODIR,REG,CNTMOVCL,CNTRO&DIRREG,CLEN
8、DM宏调用及宏展开:REGROLL,AX,8+MOV
此文档下载收益归作者所有