(精)微机原理第四章课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.4.4 子程序设计和调用技术 第4章 汇编语言程序设计 子程序不是一种基本的程序结构,但在程序设计时合理使用子程序是实现模块化程序设计的重要技巧。有两种子程序: ① 重复使用的程序段或具有通用性便于共享的程序段(键盘处理、代码转换); ② 中断处理子程序:中断处理随机产生,对其处理只能采用子程序的形式。 1. 与子程序有关的术语 (1)子程序嵌套:子程序中调用别的子程序称为嵌套, 只要堆栈空间允许,嵌套层次不限。 (2)子程序递归调用:子程序调用该子程序本身称为~。 (3)可重入子程序:能够被中断并可再次被中断程序调用的子 程序。 一、基本概念和术语 第4章 汇编语言程序设计 主过程 子过程1 CALL 子过程1 断点1 子过程嵌套示意图 子过程2 ① ② ③④⑤⑥ ④ ⑤ RET RET CALL 子过程2 断点2 ⑥ ⑦ ⑧ ⑨ 子程序 中断 在中断程序中又调用子程序 (4)可重定位子程序:全部采用相对地址、可重定位在内存任 意区域的子程序。 子程序文档 ① 功能描述(子程序的名称、功能、性能指标 (如执行时间)等。 ② 子程序的入口、出口参数。 ③ 所用寄存器和存储单元。 ④ 子程序中又调用的其它子程序。 ⑤ 调用实例(可有可无)。 2. 子程序文件——由子程序的说明文挡和子程序本身构成。 第4章 汇编语言程序设计 例:有一子程序说明如下: ;子程序DTOB ;将两位10#(BCD码)转换成2# ;入口参数:AL寄存器中存放10# ;出口参数:CL寄存器中存放转换完的2# ;所用Reg:BX ;执行时间:0.06ms 子程序常以过程形式存放在代码段,通常以一个标号开始,以 RET指令结束。 例:DTOB PROC … RET DTOB ENDP 子程序标准格式 第4章 汇编语言程序设计 二、子程序设计中的问题 1. 主程序与子程序的连接 主、子程序都存放在代码段: CALL:断点保护,转子程序。 RET: 断点恢复 。 若主、子程序在同一代码段,为段内调用; 若主、子程序各在不同的代码段,为段间调用。 第4章 汇编语言程序设计 2. 现场的保护与恢复 方法一: PUSH BX PUSH CX CALL PROC-1 POP CX POP BX 方法二: . PROC-1 PROC . PUSH BX . PUSH CX CALL PROC-1 . POP CX . POP BX . RET PROC-1 ENDP … 常用第二种方法保护和恢复现场。对中断子程序必须用第二种方法。 “现场”,指转向子过程执行时主过程的状态,主要包括当时标志寄存器、段寄存器、通用寄存器及指令指针的内容。 为保证主、子过程各自的数据信息和工作状态不会互相干扰,设计程序时应尽量使主、子过程有属于自己的工作空间。 用成对的PUSH、POP指令保护主程序与子程序中都要用到的Reg及mem。 3. 主、子程序之间的参数传递 入、出口参数——传给子程序的参数及从子程序出来的参数。 参数传递通常有3种方法: (1)使用约定的寄存器传递 (2)使用约定的存储单元(参数表、变量)传递 (3)使用堆栈传递 三、子程序应用举例 (1) 使用约定的寄存器传递参数。

文档评论(0)

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

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

1亿VIP精品文档

相关文档