hb01-汇编教案5.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hb01-汇编教案5

第 5 章 教学重点 在掌握基本的汇编语言程序设计方法之后,了解提高编程效率的各种实用方法: 高级语言特性 宏结构 模块化 5.1 高级语言特性 MASM 6.0引入高级语言的程序设计特性 条件控制伪指令 .IF .ELSE .ENDIF 循环控制伪指令 .WHILE .ENDW .REPEAT .UNTIL 过程声明和过程调用伪指令 .PROTO .INVOKE 5.2 宏结构程序设计 宏汇编 重复汇编 条件汇编 ——统称宏结构 5.2.1 宏汇编 宏——具有宏名的一段汇编语句序列 ——宏定义时书写 宏指令——这段汇编语句序列的缩写 ——宏调用时书写 宏展开——宏指令处用这段宏代替的过程 ——宏汇编时实现 宏的参数功能强大,颇具特色 配合宏,还有宏操作符和有关伪指令 宏定义 宏名 macro [形参表] 宏定义体 endm mainbegin MACRO ;;定义名为mainbegin的宏,无参数 mov ax,@data ;;宏定义体 mov ds,ax ENDM ;;宏定义结束 mainend MACRO retnum ;;带有形参retnum mov al,retnum ;;宏定义中使用参数 mov ah,4ch int 21h ENDM 宏调用 宏名 [实参表] start: mainbegin ;宏调用,建立DS内容 dispmsg string ;宏调用,显示字符串 mainend 0 ;宏调用,返回DOS end start 宏调用的实质是在汇编过程中进行宏展开 宏展开的具体过程是:当汇编程序扫描源程序遇到已有定义的宏调用时,即用相应的宏定义体取代源程序的宏指令,同时用位置匹配的实参对形参进行取代 宏展开 宏展开——在汇编时,用宏定义体的代码序列替代宏指令的过程。 start: mainbegin ;宏指令 1 mov ax,@data ;宏展开 1 mov ds,ax mainend 0 ;宏指令 1 mov al,0 ;宏展开 1 mov ah,4ch 1 int 21h 比较 仅是源程序级的简化:宏调用在汇编时进行程序语句的展开,不需要返回;不减小目标程序,执行速度没有改变 通过形参、实参结合实现参数传递,简捷直观、灵活多变 比较 结论 宏与子程序具有各自的特点,程序员应该根据具体问题选择使用那种方法 通常,当程序段较短或要求较快执行时,应选用宏;当程序段较长或为减小目标代码时,要选用子程序 5.2.2 重复汇编 重复汇编指在汇编过程中,重复展开一段(基本)相同的语句 重复汇编没有名字,不能被调用 重复汇编常用在宏定义体中,也可以在一般汇编语句中使用 重复汇编伪指令有三个: REPEAT——按参数值重复 FOR——按参数个数重复 FORC——按参数的字符个数重复 最后,用ENDM结束 5.2.3 条件汇编 条件汇编伪指令在汇编过程中,根据条件决定汇编的语句 IFxx 表达式 ;满足,汇编分支语句体1 分支语句体1 [ ELSE ;不满足,汇编分支语句体2 分支语句体2 ] ENDIF ;条件汇编结束 5.3 模块化程序设计 将程序分段、采用子程序或宏结构都是进行模块化程序设计 介绍开发大型程序时采用的方法: 源程序文件的包含 目标模块连接 子程序库 5.3.1 源程序文件的包含 把源程序分放在几个文本文件中,在汇编时通过包含伪指令INCLUDE结合成一体 INCLUDE 文件名 可将常用的子程序形成.ASM汇编语言源文件 可将常用的宏定义存放在.MAC宏库文件中 可将常量定义、声明语句组织在.INC包含文件中 源文件包含的操作步骤: ① 分别编辑生成各个文件 ② 汇编、连接主程序文件 5.3.2 目标代码文件的连接 把常用子程序写成独立的源程序文件,单独汇编,形成子程序的目标文件.OBJ 主程序也经过独立汇编之后形成目标文件 连接程序将所有目标文件连接起来,最终产生可执行文件 模块连接的操作步骤: ① 分别编辑生成各个文件 ② 分别汇编各个文件 ③ 连接各个目标文件,形成可执行文件 5.3.3 子程序库的调入 把常用子程序写成独立的源文件,单独汇编形成OBJ文件后,存入子程序库 主程序也单独汇编形成OBJ文件 主程序连接时,调入子程序库中的子程序模块,产生最终的可执行文件 库文件调入的操作步骤: ① 分别编辑生成各个文件 ② 分别汇编各个文件 ③ 用库管理文件,将子程序模块添加到库文件中 ④ 连接主程序,提供库文件,形成可执行文件 子程序库 子程序库文件(.LIB)是子程序模块的集合,其中存放着各子程序的名称、目标代码及有关定位信息 存入库的子程序的编写与目标文件连接方法中的要求一样,只

文档评论(0)

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

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

1亿VIP精品文档

相关文档