第4章汇编语言程序设计1.1(免费阅读).ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 例: 两个数之和的宏定义和宏调用。 宏定义为: DADD MACRO X,Y,Z MOV AX,X ADD AX,Y MOV Z,AX ENDM 上面宏定义中,X、Y、Z是形式参数。 调用宏DADD时可写为: DADD DATA1,DATA2,SUM 上面宏调用中,DATA1,DATA2,SUM是实际参数,由它们替换定义中的X、Y、Z,即形实结合。 * CALL DADD RET DADD: CALL DADD CALL DADD DADD yy DADD MACRO xx DADD yy DADD yy ENDM 相同 = 或 主程序+过程(子程序) 主程序+宏定义 宏扩展 宏调用 与 过程(子程序)调用 异同点示意图 * 宏调用 与 过程(子程序)调用 异同点 相同点: 都是一次定义,多次调用。 不同点: ① 执行形式:宏命令伪指令由宏汇编程序在汇编过程中进行处理;而CALL、RET则是由CPU执行的指令。 ② 汇编结果:宏命令伪指令汇编后被展开。 ③ 执行速度:宏命令执行速度较快(因无调用转移) ④ 占用内存:宏指令简化了源程序,但不能简化目标程序,并不节省内存单元; 使用过程可以节省代码(源程序和目标程序)占用的内存空间。 * 3.宏展开:汇编程序会把宏调用按宏定义展开。 例如:宏定义为: DISPLAY MACRO string LEA DX,string MOV AH,9 INT 21H ENDM 程序中宏调用: …… DISPLAY ERROR_MESSAGE DISPLAY EXIT_MESSAGE …… 汇编后的结果:(带有+号的指令为宏展开后的结果) …… + LEA DX,ERROR_MESSAGE + MOV AH,9 + INT 21H + LEA DX,EXIT_MESSAGE + MOV AH,9 + INT 21H * 4.2.7汇编结束伪指令END 汇编语言源程序的最后,要加汇编结束伪指令END,以使汇编程序结束汇编。 格式: END [表达式] END后跟的表达式通常就是程序第一条指令的标号,指示程序的启动地址(要执行的第一条指令的地址)。 ★汇编程序对 END 之后的语句不进行处理。程序中所有有效语句应放在 END 语句之前。 ★源程序中必须有 END 结束语句。汇编程序对无 END 语句的源程序不进行处理,只给出无 END 语句错误信息。 * (1) NAME 伪指令 格式: NAME  模块名 在源程序开始可用 NAME 模块命名,模块名的作用是指示给连接程序进行连接用。 源程序中可无模块定义,此时源文件名作为模块名。 4.2.8模块定义和连接伪指令 * (2)模块间通信伪指令 在编写规模较大的汇编语言源程序时,可以将整个程序划分为几个独立的源程序,称之为模块。 将各模块分别进行汇编,生成各自的目标程序,最后将它们连接成为一个完整的可执行程序。 各模块之间可以相互进行符号访问。 为了进行模块之间连接和实现相互的符号访问,以便进行变量传送,通常使用以下几个伪指令:

文档评论(0)

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

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

1亿VIP精品文档

相关文档