第6章 子程序结构

第6章 子程序结构

ID:15180038

大小:256.00 KB

页数:4页

时间:2018-08-01

第6章  子程序结构_第1页
第6章  子程序结构_第2页
第6章  子程序结构_第3页
第6章  子程序结构_第4页
资源描述:

《第6章 子程序结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第6章子程序结构1.教学目的:掌握子程序的设计方法及其参数传递方式2.教学要求:①掌握子程序的设计方法及其参数传递方式。3.教学重点:①子程序的设计方法及其参数传递方式。4.掌握难点:①子程序的设计方法及其参数传递方式。5.教学进程安排:P196~2256.教学方法:课堂讲授7.教学内容摘要:6.1子程序结构形式与操作6.1.1过程定义伪操作格式:procedurenamePROCAttribute……procedurenameENDPNEAR:调用程序和子程序在同一代码段中;FAR:调用程序和子程序不在同一代码段中。确定了CAL

2、L和RET指令的属性6.1.2子程序的调用和返回1.CALL指令2.RET指令6.1.3现场保护与现场恢复如主程序在调用子程序之前的某个寄存器内容在从子程序返回后还有用,而子程序又恰好要使用这个寄存器,则对此寄存器应给予保护。例:保护CX寄存器的内容SUBTPROCNEARPUSHCX……POPCXRETSUBTENDP6.2子程序的参数传送及嵌套6.2.1通过寄存器传送参数例:十进制到十六进制数转换程序。程序要求从键盘取得一个十进制数,然后把该数以十六进制形式在屏幕上显示出来。6.2.2直接参数传递若子程序和调用程序在同一源文件

3、(同一程序模块)中,则子程序可直接访问模块中的变量,进行参数传递。例:主程序MAIN和子程序PROADD在同一源文件中,要求用子程序PROADD累加数组中的所有元素,并把和(不考虑溢出的可能性)送到指定的存储单元中去。在这里,子程序PROADD直接访问模块的数据区。6.2.3通过地址表传递参数地址这种方法是在主程序中建立一个地址表,把要传送给子程序的参数都存放在地址表中,然后把地址表的首地址通过寄存器BX传送到子程序中去。子程序通过地址表取得所需参数,并把结果存入指定的存储单元中去。例6-4:采用通过地址表传送参数方法的程序实现6

4、.2.4通过堆栈传送参数或参数地址此方法是在主程序里把参数地址保存到堆栈中,在子程序里从堆栈中取出参数以达到传送参数的目的。例6-4:采用通过堆栈传送参数地址法的程序实现。6.2.5增强功能的子程序定义伪操作从MASM5.1版开始为用户提供了增强功能的子程序定义伪操作,其格式为:PROCNAMEPROC[ATTRIBUTESFIELD][USESREGISTERLIST][,PARAMETERFIELD]┇PROCNAMEENDP1.属性字段2.USES字段3.参数字段例:用增强功能的子程序定义伪操作的程序实现例6-46.2.6子

5、程序的嵌套1.子程序的嵌套2.嵌套深度。主程序子程序A子程序BPROC_APRO_BCALLPROC_ACALLPROC_BRETRET图6.1表示了嵌套深度为2时的子程序嵌套情况。图6.1子程序的嵌套例:设从BUF开始存放若干无符号字节数据,找出其中的最小值并以16进制形式输出。8.参考资料:《IBM-PC汇编语言程序设计》沈美明9.作业:P189习题610.本章小结:本部分要求理解性学习和应用,不要死记硬背,重点掌握子程序结构的应用环境和具体用法,以达到对汇编程序设计的优化。

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

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

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