高级汇编语言技术

高级汇编语言技术

ID:42886311

大小:97.50 KB

页数:11页

时间:2019-09-24

高级汇编语言技术_第1页
高级汇编语言技术_第2页
高级汇编语言技术_第3页
高级汇编语言技术_第4页
高级汇编语言技术_第5页
资源描述:

《高级汇编语言技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第7章高级汇编语言技术内容提要教学目标:了解宏的组织和方法;掌握宏定义、宏指令、宏调用的概念和使用方法。教学重点:宏的使用方法。教学难点:宏的使用方法。7.1重复汇编1.重复汇编重复汇编伪指令又称重复块伪指令,用来缩写若干重复的语句,以便重复进行多次。重复块可看着是宏展开的一种特殊形式,在汇编时展开。重复块也可带有形式参数,在汇编过程中被实际参数代替;但重复块没有名字,不能进行调用,只在原处重复若干次。重复块伪指令共有三种:REPT、FOR(或IRP)和FORC(或IRPC),它们都用ENDM伪指令来结束,区别只是设置重复次数的方法不同;括弧中的

2、伪指令名字是MASM5.X版本中使用的,在后续版本中仍可使用。(1)按参数值重复汇编格式:REPT<表达式>…  {重复的语句序列}ENDM其中表达式的值为REPT与ENDM之间的语句序列重复展开的次数。例:TABLELABLEBYTE;等价于TABLELABLEBYTEX=0;DB1REPT5;DB2X=X+1;DB3DBX;DB4ENDM;DB51.重复汇编(续)(2)按参数个数重复汇编格式:FOR(或IRP)<形式参数>,<<实际参数表>>…{重复的语句序列}ENDMFOR(或IRP)与ENDM之间的语句对每个实际参数都执行一次,重复次数为

3、实际参数的个数,实际参数必须用尖括弧括起来,在执行过程中用当前的实际参数去代替形式参数。例TABLELABELBYTEIRPX,<1,2,3,4,5>DBXENDM该段程序与上例是等价的。1.重复汇编(续)(3)按参数字符个数重复汇编格式:FORC(或IRPC)<形式参数>,<字符串>或<<字符串>>…{重复的语句序列}ENDM重复执行FORC(或IRPC)与ENDM之间的语句,每次都用当前字符中的字符去取代形式参数,重复的次数为字符串中字符的个数。如果字符串中包括空格、逗号或其它分隔符,则字符串必须用尖括号括起来。例:TABLELABELBYT

4、EIRPCX,12345DBXENDM该程序段与前2例是等价的。7.2条件汇编条件汇编伪指令可根据条件对源程序块有选择地进行汇编,从而把某段指令序列包含在汇编语言源程序内,或者不对某段指令序列进行汇编。格式:IF<条件><语句序列1>[ELSE<语句序列2>]ENDIF其中条件是伪指令助记符的一部分,ELSE语句及其后的语句序列2是可选部分, 条件为真执行语句序列1, 为假执行语句序列2或者ENDIF之后的语句。 整个条件汇编以语句ENDIF结束。汇编条件有六组,见下表。7.3宏汇编对程序中多次重复使用的指令序列,可给它取个名字,定义成一个宏,在

5、源程序中书写宏名就代表这个指令序列。汇编时把宏名展开成该指令序列,从而减少了程序的编写量,使源程序更加简练、清晰。(1)宏定义格式:<宏名>MACRO[形式参数表]…{宏体}ENDM宏名必须唯一,宏调用时用来代替所定义的宏体(具体内容),宏体由汇编语言所允许的任何语句(指令或伪指令)组成,它决定了宏的功能。形式参数根据宏体需要可以没有,或者有一个或多个;有多个形式参数时相互之间要用逗号或空格或制表符分隔开。 调用宏时要依次用对应的实参去取代。宏体中可以定义或调用另一个宏。定义一个宏,相当于增加了一条伪指令,汇编时告诉汇编程序用宏体来代替该名字。宏

6、要先定义,后调用。宏定义一般放在源程序文本的开始处,而不放在某一个段内。7.3宏汇编(续)例:定义一个宏,参数为0时执行输入的DOS功能调用,否则执行输出的DOS功能调用。INOUTMACROPIFPMOVAH,2INT21H;输出DL中的字符ELSEMOVAH,1INT21H;输入的字符送ALENDIFENDM7.3宏汇编(续)(2)宏的调用与展开格式:<宏名>[实际参数表]宏名必须是已定义的,实际参数表中参数的类型和顺序应与宏定义时的形式参数一一对应;实参个数多于形参时,多余的实参被忽略;实参个数少于形参的,多余的形参用空串取代。汇编源程序时

7、,汇编程序要对源程序中所有的宏调用进行展开,即将宏名所定义的指令序列插入到宏调用处。宏与子程序(即过程)有所不同。宏调用是把宏体展开,程序中有几处宏调用就展开几次,源程序代码长,不节省存储空间,但展开后执行速度快,节省运行时间;子程序调用不展开子程序代码(子程序仍存储在原处),但改变程序流程,由主程序调用处转入子程序去执行,执行完毕再返回主程序调用处继续执行,子程序调用前后要保护和恢复现场,因此执行时间长,但节省存储空间。7.3宏汇编(续)(3)宏操作符宏汇编程序MASM提供了相应的宏操作符,用于宏参数的传递连接,如下表所示。(4)宏的删除PUR

8、GE当宏在程序中调用完之后而再也用不到时,可用PURGE伪指令删除之,以释放它所占用的存储空间。格式:PURGE<宏名>[,宏名…]7.

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

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

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