网站大量收购独家精品文档,联系QQ:2885784924

宏汇编 汇编语言第5章课件.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.1 子程序的概念 5.2 子程序的定义、调用和返回 ** 5.3 子程序的现场保护与参数传递** 5.4 子程序设计 * 5.5 子程序的嵌套与递归调用 5.6 宏汇编程序设计 什么是宏? 1、宏定义 宏名 macro [形参表] ┇    ;宏指令体(宏体) endm 1、宏定义(续) fillseg macro Dsegname ;带有形参Dsegname mov ax, Dsegname ;宏定义中使用参数 mov ds,ax endm ;宏定义结束 2、宏调用 宏名 [实参表] ;调用时,只需使用宏指令名来调用该宏定义 例如:对上面的宏定义的调用形式为: ┆ FILLSEG DATA        ; DATA为数据段的段名 ┆ 说明:(1)汇编时,汇编程序对每个宏调用作宏展开 ––– 用宏定义体取代源程序中的宏指令名,用实参代替宏定义中的形参。取代时,实参和形参是一一对应的。 若实参个数形参个数,则多余实参不考虑 , 若实参个数 形参个数,则多余形参作“空” 处理。 (2)取代后,所得到的语句应该是有效的,否则汇编程序将会指示出错。 (3)每调用一次就把宏定义体展开一次,因而它占有的存储空间与调用次数有关。 3、宏展开 1 MOV AX,DATA 1 MOV DS,AX 宏调用的实质是在汇编过程中进行宏展开 宏展开的具体过程是:当汇编程序扫描源程序遇到已有定义的宏调用时,即用相应的宏定义体取代源程序的宏指令,同时用位置匹配的实参对形参进行取代。 宏——具有宏名的一段汇编语句序列 ——宏定义时书写 宏指令——这段汇编语句序列的缩写 ——宏调用时书写 宏展开——宏指令处用这段宏代替的过程 ——宏汇编时实现 宏的参数功能强大,颇具特色 在什么情况下使用宏?为什么要使用宏? 在汇编语言程序设计过程中,可以将具有一定功能,需多次重复使用,且比较短的程序段定义成一条宏指令。 使用宏指令语句可以减少程序书写错误,缩短源程序长度,使源程序编写像高级语言一样清晰、简洁。特别是使用宏库后,可以提高编程效率。 比较 仅是源程序级的简化:宏调用在汇编时进行程序语句的展开,不需要返回;不减小目标程序,执行速度没有改变 通过形参、实参结合实现参数传递,简捷直观、灵活多变 比较 结论 4、宏调用中的参数(宏运算) 表达符操作%示例。 DA MACRO A, B, C, D DW A, B, C DB D DUP(0) ENDM 如果宏调用为: X=10 Y=20 DA %X+2, 5,%X+Y, %Y-5 DA X+2, 5, X+Y, Y-5 表达符操作&示例。 DA MACRO SS DB ‘Exam:ss’,0ah,0dh,’$’ ENDM 如果宏调用为: DA book 1、按参数值重复伪指令- REPT REPT  数值表达式  ;重复次数 重复的语句组  ENDM 【例2】 将A~Z这26个字母数据填入数组CHAR中。 CHAR LABEL BYTE CHR=A REPT 26 DB CHR CHR=CHR+1 ENDM 其中,① 实参数必须写在尖括号内,可以有多个,参数之间用逗号分隔开。② 重复时,第一次重复将用第一个实参数替换语句块中的形参所在位置,第二次重复用第二个实参数,依此类推。如果没有实参数,那么这个块只处理一次,并且被一个空参数所替换。 扩展后为 TABEL LABEL NEAR 1 PUSH AX 1 PUSH BX 1 PUSH CX 1 PUSH DX 条件汇编允许用户在编制汇编语言程序时根据某些条件是否成立(为真)来决定是否汇编某一段语句。条件汇编指令提供有10个,分为互补的5对,分别用来测试表达式扫描遍数、符号定义、参数和两个字符串是否相同等。条件汇编伪指令的一般格式是:    IF×× 表达式或参数     语句1 ;成立时汇编这一段语句    [ELSE   语句2 ] ;条件不成立时汇编这一段语句(称

文档评论(0)

brnpnu31163 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档