汇编语言第6章:子程序设计.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章:子程序设计 6.1 子程序的设计方法 6.2 子程序的嵌套 6.3 子程序举例 6.1 子程序的设计方法 6.1 子程序的设计方法 6.1.1 过程定义伪操作 6.1.1 过程定义伪操作 6.1.1 过程定义伪操作 6.1.2 子程序的调用与返回 CALL 调用 RET 返回 6.1.3 保存与恢复寄存器 ?一般子程序中用到的寄存器应该在一进入子程序后就保存起来,在退出子程序前把寄存器内容恢复原状 例: 注:用来作为传递参数的寄存器除外 6.1.4 子程序的参数传送 参数传送:或称为变量传送或过程通信,即调用程序和子程序之间的信息传送 6.1.4 子程序的参数传送 decibin proc near mov bx,0 newchar: mov ah,1 int 21h sub al,30h jl exit cmp al,9d jg exit cbw 6.1.4 子程序的参数传送 6.1.4 子程序的参数传送 6.1.4 子程序的参数传送 6.1.4 子程序的参数传送 6.1.4 子程序的参数传送 6.1.4 子程序的参数传送 6.1.4 子程序的参数传送 6.2 子程序的嵌套 6.3 子程序举例 例6.10 作业:P114 3.39(1)、(3) 、(4) 、(8) P243 6.6 * * * * * * 子程序:具有特定功能的,且可以多次反复调用的程序段 优点:节省存储空间; 提高程序设计的效率和质量; 使程序简洁、清晰、易读,便于维护 适用场合:出于程序模块化的考虑; 某段程序在程序中多次出现 子程序的一般结构: 保护现场 子程序功能 恢复现场 返回主程序 子程序的入口地址: 现场:主程序中的一些中间运算结果,可能在子程序中被破坏,所以在子程序一开始要把它们保护起来,在子程序结束时,再将其还原 功能:定义了一个以PROC伪指令开始,以ENDP伪指令结束,以过程名命名的一个过程(或子程序段) 语句格式: procedure_name PROC [NEAR] … procedure_name ENDP 或 procedure_name PROC FAR … RET 可以不写,缺省时默认为NEAR 子程序功能 说明: ① 过程名为标识符,是子程序的入口的符号地址,可被CALL指令调用 ② 过程名的类型由PROC后的属性确定: NEAR---定义该过程为段内调用和返回 FAR---定义该过程为段间调用和返回 ③ ENDP语句前的过程名与PROC前一致 ④ PROC与ENDP要成对出现 ⑤ 在子程序段中至少有一条“RET”语句,以便返回主程序 ⑥ 过程在程序段中定义,放在程序段的首部或尾部 CODE SEGMENT subr PROC subr ENDP CODE ENDS … … 主程序段 过程定义 CODE SEGMENT ASSUME … subr PROC subr ENDP CODE ENDS … 主程序段 过程定义 … 放在段尾 放在段首 例6.1 例6.2 注:正确使用堆栈使得执行RET指令前SP能正确指向进入子程序时的返回地址 入口参数:调用程序传递给子程序的,需要其加工处理的原始数据 出口参数:子程序提供给调用程序的处理结果 参数传送方法: 1. 通过寄存器传送参数:就是子程序的入口参数和出口参数都是存放在约定的寄存器中 例6.3: 优点:使用方便、传递较快、节省内存 缺点:参数很多时不能使用 cbw xchg ax,bx mov cx,10d mul cx xchg ax,bx add bx,ax jmp newchar exit: ret decibin endp 参数传送方法: 2. 如过程和调用程序在同一源文件(同一程序模块)中,则过程可直接访问模块中的变量 例6.4: 优点:使用方便 缺点:不易多次调用 参数传送方法: 3. 通过地址表传送参数地址:就是子程序的入口参数和出口参数都是存放在约定的内存单元中 例

文档评论(0)

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

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

1亿VIP精品文档

相关文档