第六章子程序设计.ppt
《第六章子程序设计.ppt》由会员分享,可在线阅读,更多相关《第六章子程序设计.ppt(28页珍藏版)》请在课桌文档上搜索。
1、2023/3/30,汇编语言程序设计教程,1,第6章 子程序设计,6.1 子程序的定义与调用6.2 子程序的参数传递方法6.3 子程序的嵌套与递归,2023/3/30,汇编语言程序设计教程,2,子程序,在程序设计过程中,经常会遇到一些功能结构相同,仅是某些值不同的程序段在程序中多次出现,这样的重复编写既繁琐又费时。为此,在设计程序时,将可以多次调用、能完成特定操作功能的程序段编写成独立的程序模块称为子程序。调用这些子程序的程序称为主程序。一个子程序应具备重复性、通用性、可浮动性、可递归性和可重入性。主程序调用子程序通过调用指令CALL来实现。子程序返回主程序的功能由返回指令RET实现。子程序调
2、用时要注意保护现场,子程序返回时要及时恢复现场。,2023/3/30,汇编语言程序设计教程,3,6.1 子程序的定义与调用,6.1.1 子程序的定义6.1.2 子程序的调用,2023/3/30,汇编语言程序设计教程,4,子程序定义与调用的结构,2023/3/30,汇编语言程序设计教程,5,子程序的适应范围,多次重复使用的程序段;具有通用性的程序段;模块化程序结构中的子模块;具有特殊功能的程序段;中断服务程序。,2023/3/30,汇编语言程序设计教程,6,采用子程序结构的优点,简化了程序设计过程,使程序设计时间大量节省。缩短了程序的长度,节省了计算机汇编源程序的时间和程序的存储空间。增加了程序
3、的可读性,便于对程序的修改和调试。方便了程序的模块化、结构化和自顶向下的程序设计。,2023/3/30,汇编语言程序设计教程,7,子程序的定义,子程序是用过程定义伪指令PROC和ENDP来定义的,还应指出过程的类型属性,因此,子程序也可称为过程。在PROC和ENDP之间是为完成某一特定功能的一连串指令,其最后一条指令是返回指令RET。,2023/3/30,汇编语言程序设计教程,8,子程序定义格式,过程名 PROC NEAR或FAR 过程体语句RET过程名 ENDP其中,“过程名”是子程序入口的符号地址,NEAR或FAR是过程的类型属性,它指出对该过程的调用是段内的调用还是段间调用。NEAR用于
4、段内调用,而FAR用于段间调用。,2023/3/30,汇编语言程序设计教程,9,过程属性的确定原则,调用程序和过程若在同一代码段中,则使用NEAR属性。调用程序和过程若不在同一代码段中,则使用FAR属性。主程序应定义为FAR属性。因为程序的主过程被看作是DOS调用的一个子程序,而DOS对主过程的调用和返回都是FAR属性。,2023/3/30,汇编语言程序设计教程,10,子程序的调用格式,子程序的调用和返回是由CALL和RET指令完成。子程序的正确调用和正确返回是执行子程序的基本保证。CALL指令的格式为:CALL 过程名 为了使子程序正确地执行,除了正确选择过程的属性外,正确使用堆栈也是非常重
5、要的。,2023/3/30,汇编语言程序设计教程,11,例:段内直接调用,显示P,CODE SEGMENT ASSUME CS:CODESTART:CALL DISP MOV AH,4CH INT 21HDISP:MOV DL,P MOV AH,2 INT 21H RETCODE ENDS END START,DISP PROC MOV DL,P MOV AH,2 INT 21H RETDISP ENDP,2023/3/30,汇编语言程序设计教程,12,例:段内间接调用,显示P,CODE SEGMENT ASSUME CS:CODESTART:MOV OFFSET DISP CALL BX M
6、OV AH,4CH INT 21HDISP:MOV DL,P MOV AH,2 INT 21H RETCODE ENDS END START,2023/3/30,汇编语言程序设计教程,13,例:段间直接调用,显示P,CODE1 SEGMENT ASSUME CS:CODE1START:CALL FAR PTR DISP MOV AH,4CH INT 21HDODE1 ENDSCODE2 SEGMENT ASSUME CS:CODE2DISP PROC FAR MOV DL,P MOV AH,2 INT 21H RETDISP ENDPCODE2 ENDS END START,2023/3/30
7、,汇编语言程序设计教程,14,例:段间间接调用,DATA SEGMENTNUM DW 1CAADDR DW OFFSET SUBRT0 DW SEG SUBRT0 DW OFFSET SUBRT1 DW SEG SUBRT1 DW OFFSET SUBRT2 DW SEG SUBRT02DATA ENDSCODE SEGMENT ASSUME CS:CODESTART:MOV BX,NUM ADD BX,BX ADD BX,BX MOV SI,OFFSET CAADDR CALL FAR TR SI+BX SUBRT0.,2023/3/30,汇编语言程序设计教程,15,子程序的返回,1)段内返
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 章子 程序设计
链接地址:https://www.desk33.com/p-259731.html