高级汇编语言技术ppt课件.ppt

高级汇编语言技术ppt课件.ppt

ID:58981072

大小:327.00 KB

页数:40页

时间:2020-09-27

高级汇编语言技术ppt课件.ppt_第1页
高级汇编语言技术ppt课件.ppt_第2页
高级汇编语言技术ppt课件.ppt_第3页
高级汇编语言技术ppt课件.ppt_第4页
高级汇编语言技术ppt课件.ppt_第5页
资源描述:

《高级汇编语言技术ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、汇编语言程序指令指令伪指令(伪操作)宏指令第7章高级汇编技术在汇编源程序设计中,如果要多次重复使用某一个程序段,这些程序段虽然出现位置不同,但功能完全相同,这时,除了可把其定义为过程外,还可定义为宏结构。宏指令提供了简化程序设计的另一种方法。使用宏指令可以使源程序更加清晰,易于阅读,简化重复程序的编写。1优:模块化省内存缺:开销大宏定义:Qmacrox,y…endm主程序:…Qa,b…Qc,d…Qe,f…目标程序:………………优:参数传送简单,执行效率高缺:占用内存空间大主程序:…CALL----…CALL----…CALL----…子程序:………RET

2、子程序结构宏结构2通常与宏指令配合使用的伪指令还有重复汇编和条件汇编。宏指令、重复汇编和条件汇编统称宏结构。宏概念宏:源程序中一段有独立功能的程序代码。宏指令:用户自定义的指令。在编程时,将多次使用的功能用一条宏指令来代替。1.宏定义由伪指令MACRO与ENDM实现。两种形式如下:7.1宏汇编一.宏功能的使用过程宏功能的使用过程包括:宏定义,宏调用和宏展开(1)不带参数的宏定义(2)带参数的宏定义注意:宏定义本身不生成任何目标代码。2.宏调用宏调用就是在源程序中需要宏结构的位置直接引用已经定义的宏名。所构成的语句称为宏指令语句。(1)无参数宏调用:宏名(

3、2)带参数宏调用:宏名实参1,实参2,…….宏调用分为无参数调用和带参数调用,其格式分别为:INPUTMACRO;定义宏INPUTMOVAH,01HINT21HANDAL,0FHENDMEXCHANGEMACROBY1,BY2;定义宏EXCHANGEPUSHAXMOVAL,BY1XCHGAL,BY2MOVBY1,ALPOPAXENDM:INPUT;调用宏INPUT::EXCHANGEDA_BY1,DA_BY2;调用宏EXCHANGE:例如:3.宏展开宏展开是指MASM在汇编源程序过程中,当扫描到宏指令语句时,将用宏定义中的宏体程序段目标代码替代宏指令语句

4、。对于带参数的宏调用,将同时用相应的实参替代宏体中对应的形参。实在参数的类型与顺序应与宏定义时的形式参数一致。宏展开时,若实在参数的个数多于形式参数,则忽略多余的实在参数;若实在参数的个数少于形式参数,则多余的形式参数为空。宏定义只是告诉MASM,用一个名字来表示一段语句序列,其本身不被汇编。宏指令的参数非常灵活,可以出现在指令的操作数或操作码部分,MASM在宏展开时对参数进行文本替换。例:保存寄存器宏展开:1pushax1pushbx1pushcx1pushdx1pushsi1pushdi宏定义:saveregMACROpushaxpushbxpush

5、cxpushdxpushsipushdiENDM宏调用:savereg8例:两个字相乘宏定义:multiplyMACROopr1,opr2,resultpushdxpushaxmovax,opr1imulopr2movresult,axmovresult+2,dxpopaxpopdxENDM宏调用:multiplycx,var,xyz[bx]9例:求绝对值宏定义:absolMACROoperLOCALnextcmpoper,0jgenextnegopernext:ENDM宏调用:……absolvar……absolbx……宏展开:……1cmpvar,01j

6、ge??00001negvar1??0000:…………1cmpbx,01jge??00011negbx1??0001:……10SHIFTMACROVAR,REG,SHF,NUM,DESTMOVREG,VARMOVCL,NUMS&SHFREG,CL;SHF为形参MOVDEST,REGENDM:SHIFTDA_WORD,AX,AR,CONT+1,例如:上述宏展开后为:1MOVAX,DA_WORD1MOVCL,CONT+11SARAX,CL1MOVWORDPTRDEST1+2,AX4宏指令与过程的区别在汇编后产生的目标文件中,过

7、程定义依然存在,而宏定义却不复存在。过程调用是在执行时通过CALL指令完成的,而宏调用是在汇编时进行宏展开,被相应宏体所取代。将多次调用的一段代码定义为宏指令,与使用过程相比,其执行速度要快(因为过程需要调用和返回),但目标代码长。宏指令的参数是在汇编时进行形实替换的,而过程的参数是在执行时通过寄存器或堆栈等方式传递的。二、宏操作符1.<>在宏调用时,当实在参数包含空格或逗号等间隔符时,必须使用“<”和“>”作为参数的定界符。字符串传递操作符:用在宏调用的实参中:在宏调用中,如果传递的字符串实参数含有逗号、空格等间隔符号,则必须用这对操作符,以保证字符串

8、的完整2.符号1&符号2宏展开时,合并前后两个符号形成一个符号。3.%表达式汇编

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。