《汇编语言程序设计》-相伟-电子教案第6章.ppt

《汇编语言程序设计》-相伟-电子教案第6章.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
21世纪高等院校规划教材 第6章 宏功能设计和子程序设计 本章主要讲解宏功能与子程序的基本知识和设计方法。通过本章学习,读者应掌握以下内容: 宏定义与宏调用 子程序定义、调用与返回 主程序与子程序的参数传递 子程序设计方法 6.1 宏功能程序设计 在汇编语言源程序中,有时会多次用到这样的程序段,它们完成相同的功能,实现功能的语句或完全相同,或仅有某些变量差异,为了不重复书写这些程序段,提高编写程序的效率,可以使用宏汇编语言中的宏。 宏就是源程序中一段有独立功能的程序代码,它只需要在源程序中定义一次,就可以多次调用。调用时只需要用一个宏指令语句就可以。 6.1.1 宏定义与宏调用 宏指令的使用要经过以下三个步骤: (1)宏定义:即用一组伪指令将重复的语句序列定义成宏指令。定义宏指令时可以根据需要设置形式参数,并指定宏指令名。 (2)宏调用:在程序中需要的地方通过带实参的宏指令来调用宏定义。 (3)宏展开:由宏汇编程序用宏定义中的语句序列来代替宏调用中的宏名,用实参代替形参。 其中,前两步工作必须由用户自己完成,而第三步则 由宏汇编程序在汇编期间完成。 ⒈ 宏定义 宏定义是用一组伪指令来实现的。 定义格式为: 宏指令名 MACRO [形式参数表] 宏定义体 ENDM 其中,MACRO和ENDM是一对伪指令,分别表示宏定义的开始和 结束,中间是宏定义体,即一组有独立功能的程序代码。宏指令名 给出该宏定义的名称,调用时就使用宏指令名来调用该宏定义。宏 指令名的第一个字符必须是字母,后面可以跟字母、数字或下划线 等字符。形式参数表给出了宏定义用到的形式参数(简称形参), 参数与参数之间用逗号隔开。注意参数可以缺省。 例如,在某程序中,需要多次输出缓冲区中的字符串,这就要反复进行9号功能调用: …… LEA DX , BUF1 MOV AH , 9 INT 21H …… LEA DX , BUF2 MOV AH , 9 INT 21H …… LEA DX , BUF3 MOV AH , 9 INT 21H …… 上述三次功能调用语句格式完全相同,只是每次输出缓 冲区首址不同。为缩短程序行,简化程序设计,我们可 以将9号功能调用的过程定义成宏指令,将输出缓冲区首 址作为形式参数。定义格式如下: OUTPUT MACRO A LEA DX , A MOV AH , 9 INT 21H ENDM 其中OUTPUT是宏指令名,A是形式参数。 ⒉ 宏调用 经宏定义定义后的宏指令就可以在源程序中调用。 调用格式:宏指令名 [实在参数表] 其中,宏指令名必须与宏定义中的宏指令名一致,实在参 数表中的参数与宏定义中的形式参数表中的参数按位置关 系一一对应。实在参数简称实参。 按此格式,对前面宏定义的三次调用可写成下面形式: …… OUTPUT BUF1 …… OUTPUT BUF2 …… OUTPUT BUF3 …… ⒊ 宏展开 当源程序被汇编时,汇编程序将对每个宏调用进行宏展开。宏展开就是用宏定义体取代源程序中的宏指令名,并用实参取代宏定义中的形参。在取代时,实参和形参是一一对应的。另外,展开后所得到的语句应该是有效的,否则汇编程序将指示出错。 对于上面的三次宏调用,展开后形式为: …… + LEA DX , BUF1 + MOV AH , 9 + INT 21H …… + LEA DX , BUF2 + MOV AH , 9 + INT 21H …… + LEA DX , BUF3 + MOV AH , 9 + INT 21H …… 注意在汇编列表文件中,宏展开后留下的宏体语句在每行的第31列用符号“+”标志。 下面我们再用一个例子来说明宏定义、宏调用和宏展开的情况。 例6-1:用宏指令定义两个字操作数相乘。 源程序如下: 宏定义 MULTY MACRO OPR1,OPR2,RESULT PUSH DX PUSH AX MOV AX,OPR1 IMUL OPR2 MOV RESULT,AX MOV RESULT+2,DX POP AX POP DX ENDM 宏调用

文档评论(0)

经管专家 + 关注
实名认证
内容提供者

各类文档大赢家

版权声明书
用户编号:6055234005000000

1亿VIP精品文档

相关文档