什么是子程序-子程序的概念

什么是子程序-子程序的概念

ID:43397351

大小:74.00 KB

页数:6页

时间:2019-10-01

什么是子程序-子程序的概念_第1页
什么是子程序-子程序的概念_第2页
什么是子程序-子程序的概念_第3页
什么是子程序-子程序的概念_第4页
什么是子程序-子程序的概念_第5页
资源描述:

《什么是子程序-子程序的概念》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、什么是子程序?子程序的概念把可以多次调用、能够完成特定操作功能的程序段编写成独立的程序模块称为子程序,又称其为过程。主程序与子程序之间的关系如图1所示。1.重复性2.通用性3.可浮动性4.可递归和可重入性二、子程序定义格式:PROCEDURENAMEPROCATTRIBUTEPROCEDURENAMEENDP1.子程序名2.属性©NEAR②FARo三、子程序的设计方法子程序是程序设计中经常使用的程序结构,通过把一些固定的、经常使用的功能做成子程序的形式,可以使源程序及目标程序大大缩短,提高程序设计的效率和可靠性。对于一个子程序,应该

2、注意它的入口参数和出口参数。入口参数是由主程序传给子程序的参数,而出口参数是子程序运算完传给主程序的结果。另外,子程序所使用的寄存器和存储单元往往需要保护,以免影响返回后主程序的运行。主程序在调用子程序时,一方面初始数据要传给子程序,另一方面子程序运行结果要传给主程序,因此,主子程序之间的参数传递是非常重要的。四、子程序的调用和返回1.CALL指令2.RET指令五、现场保护与现场恢复1.现场保护与现场恢复的原因1.现场保护与现场恢复的实现(1)PUSH/POP(2)PUSHA/POPA(3)PUSHAD/POPAD六、参数传递的实现

3、参数传递一般有四种方法实现:(1)利用寄存器这是一种最常见方法,把所需传递的参数直接放在主程序的寄存器中传递给子程序。(2)利用存储单元这种参数传递方法,把所需传递的参数直接放在子程序调用指令代码之后。若子程序和调用程序在同一源文件(同一程序模块)中,则子程序可直接访问模块中的变量,进行参数传递。(3)利用堆栈这种方法将参数压入堆栈,在子程序运行时从堆栈中取参数。下面我们通过实例说明子程序设计及参数传递方法。(4)通过地址表传递参数地址这种方法是在主程序中建立一个地址表,把要传送给子程序的参数都存放在地址表中,然后把地址表的首地址通

4、过寄存器BX传送到子程序中去。子程序通过地址表取得所需参数,并把结果存入指定的存储单元中去。五、增强功能的子程序定义伪操作从MASM5.1版开始为用户提供增强功能的过程定义伪操作伪操作格式:procnamePROC[attributefield][USESregisterlist][,parameterfield]IIIprocnameENDP说明:®.其中属性字段(attributefield)W以下几项组成:distancelanguagetypevisibilityprologue,每一项均为可选,各项之间用一空格或制表符分开

5、。I.distance就是NEAR或FAR。II.languagetype说明当该过程作为某高级语言程序的子过程时所用的高级语言。III.visibility说明该过程的可见性,可用Private或Publico如用Private则该过程的可见性只能是当前的源文件;如用Public则允许其他模块调用该过程(默认)。II.prologue是一宏的名字,允许用户用宏来控制过程的入口和出口有关的代码。②.USES字段允许用户指定所需保存和恢复的寄存器表,MASM将在过程入口自动生成push指令来保存这些寄存器,并在过程出口的ret指令前自

6、动生成pop指令来恢复这些寄存器。③.参数字段允许用户指定该过程所用参数,其格式为:identifier:type[,identifier:type]其中identifier给出参数的符号名,type给出参数的类型。参数之间用逗号隔开。增强功能的过程定义伪操作还可在过程中定义局部变量。局部变量是指在过程内部使用的变量。它是在过程被调用时在堆栈中建立的,在退出过程时被释放。它是以[BP-2]、[BP-4]、…的形式被访问的。MASM规定,在过程内可以用LOCAL伪操作为局部变量申请空间。伪操作格式:LOCALvardef[,varde

7、f]说明:⑪其中变量定义可用的格式为:labellabel:typelabel[count]:type其中第一个未指定类型者MASM将使用WORDotype可以指定任意合法的类型说明。第三种类型为用户申请数组提供了方便。②.LOCAL语句必须紧跟在过程定义伪操作之后,并在任何80x86指令或可以产生任何代码的MASM语句之前出现。它可以定义多个局部变量。七、程序的调用1.递归的概念2.递归的特点

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。