分享
分享赚钱 收藏 举报 版权申诉 / 11

类型高级汇编语言技术.ppt

  • 上传人:fmgc7290
  • 文档编号:8435479
  • 上传时间:2019-06-27
  • 格式:PPT
  • 页数:11
  • 大小:97.50KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    高级汇编语言技术.ppt
    资源描述:

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

    2、5.X版本中使用的,在后续版本中仍可使用。 (1) 按参数值重复汇编格式: REPT 重复的语句序列ENDM其中表达式的值为REPT与ENDM之间的语句序列重复展开的次数。 例: TABLE LABLE BYTE ;等价于 TABLE LABLE BYTEX=0 ; DB 1REPT 5 ; DB 2X=X+1 ; DB 3DB X ; DB 4ENDM ; DB 5,1. 重复汇编(续),(2) 按参数个数重复汇编格式: FOR(或IRP) , 重复的语句序列ENDMFOR(或IRP)与ENDM之间的语句对每个实际参数都执行一次,重复次数为实际参数的个数,实际参数必须用尖括弧括起来,在执行过

    3、程中用当前的实际参数去代替形式参数。例 TABLE LABEL BYTEIRP X, DB XENDM 该段程序与上例是等价的。,1. 重复汇编(续),(3) 按参数字符个数重复汇编格式: FORC(或IRPC) ,或 重复的语句序列ENDM重复执行FORC(或IRPC)与ENDM之间的语句,每次都用当前字符中的字符去取代形式参数,重复的次数为字符串中字符的个数。如果字符串中包括空格、逗号或其它分隔符,则字符串必须用尖括号括起来。 例: TABLE LABEL BYTEIRPC X,12345DB XENDM该程序段与前2例是等价的。,7.2条件汇编,条件汇编伪指令可根据条件对源程序块有选择地

    4、进行汇编,从而把某段指令序列包含在汇编语言源程序内,或者不对某段指令序列进行汇编。 格式: IF ELSEENDIF 其中条件是伪指令助记符的一部分, ELSE语句及其后的语句序列2是可选部分, 条件为真执行语句序列1, 为假执行语句序列2或者ENDIF之后的语句。 整个条件汇编以语句ENDIF结束。 汇编条件有六组,见下表。,7.3 宏汇编,对程序中多次重复使用的指令序列,可给它取个名字,定义成一个宏,在源程序中书写宏名就代表这个指令序列。汇编时把宏名展开成该指令序列,从而减少了程序的编写量,使源程序更加简练、清晰。 (1) 宏定义 格式: MACRO 形式参数表 宏体ENDM 宏名必须唯一

    5、,宏调用时用来代替所定义的宏体(具体内容),宏体由汇编语言所允许的任何语句(指令或伪指令)组成,它决定了宏的功能。 形式参数根据宏体需要可以没有,或者有一个或多个;有多个形式参数时相互之间要用逗号或空格或制表符分隔开。 调用宏时要依次用对应的实参去取代。 宏体中可以定义或调用另一个宏。定义一个宏,相当于增加了一条伪指令,汇编时告诉汇编程序用宏体来代替该名字。 宏要先定义,后调用。宏定义一般放在源程序文本的开始处,而不放在某一个段内。,7.3 宏汇编(续),例:定义一个宏,参数为0时执行输入的DOS功能调用,否则执行输出的DOS功能调用。INOUT MACRO PIF PMOV AH,2INT

    6、21H ;输出DL中的字符ELSE MOV AH,1INT 21H ;输入的字符送ALENDIFENDM,7.3 宏汇编(续),(2) 宏的调用与展开 格式: 实际参数表宏名必须是已定义的,实际参数表中参数的类型和顺序应与宏定义时的形式参数一一对应;实参个数多于形参时,多余的实参被忽略;实参个数少于形参的,多余的形参用空串取代。 汇编源程序时,汇编程序要对源程序中所有的宏调用进行展开,即将宏名所定义的指令序列插入到宏调用处。 宏与子程序(即过程)有所不同。宏调用是把宏体展开,程序中有几处宏调用就展开几次,源程序代码长,不节省存储空间,但展开后执行速度快,节省运行时间;子程序调用不展开子程序代码

    7、(子程序仍存储在原处),但改变程序流程,由主程序调用处转入子程序去执行,执行完毕再返回主程序调用处继续执行,子程序调用前后要保护和恢复现场,因此执行时间长,但节省存储空间。,7.3 宏汇编(续),(3) 宏操作符 宏汇编程序MASM提供了相应的宏操作符,用于宏参数的传递连接,如下表所示。 (4) 宏的删除PURGE 当宏在程序中调用完之后而再也用不到时,可用PURGE伪指令删除之,以释放它所占用的存储空间。 格式: PURGE ,宏名,7.3 宏汇编(续),(5) 宏库 为避免重复定义的麻烦,可将通用的宏定义集中放在一个单独的文件中,即放在后缀为.MAC的宏库文件中,宏库中可以有多个宏定义。

    8、可用任一个编辑程序像建立源程序那样来建立宏库。宏库中的宏必须是通用的例行程序或程序段,对宏中使用的寄存器及状态标志要入栈保存,宏定义中的标号要先用Local伪指令定义(限定只在宏内使用)。 在程序中可用INCLUDE伪指令将宏库中的宏定义复制到该指令所在的位置: INCLUDE 盘符:路径 .扩展名INCLUDE功能是通知汇编程序把指定的文件拷贝一份,插入到该语句下方,供汇编使用。如INCLUDE MLIB.MAC语句将宏库中MLIB.MAC的全部宏定义复制出来。 一般INCLUDE伪指令也放在源程序的开始部分。 为避免汇编程序两次扫描都去重复读宏库文件,可用条件汇编IF1使宏库文件只在第一遍扫描时读入:IF1INCLUDE MLIB.MACENDIF,

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:高级汇编语言技术.ppt
    链接地址:https://www.docduoduo.com/p-8435479.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开