- 1
- 0
- 约 28页
- 2017-02-09 发布于江苏
- 举报
子程序设计优秀培训书
汇编语言程序设计教程 第6章 子程序设计 6.1 子程序的定义与调用 6.2 子程序的参数传递方法 6.3 子程序的嵌套与递归 子程序 在程序设计过程中,经常会遇到一些功能结构相同,仅是某些值不同的程序段在程序中多次出现,这样的重复编写既繁琐又费时。 为此,在设计程序时,将可以多次调用、能完成特定操作功能的程序段编写成独立的程序模块称为子程序。 调用这些子程序的程序称为主程序。 一个子程序应具备重复性、通用性、可浮动性、可递归性和可重入性。 主程序调用子程序通过调用指令CALL来实现。子程序返回主程序的功能由返回指令RET实现。子程序调用时要注意保护现场,子程序返回时要及时恢复现场。 6.1 子程序的定义与调用 6.1.1 子程序的定义 6.1.2 子程序的调用 子程序定义与调用的结构 子程序的适应范围 多次重复使用的程序段; 具有通用性的程序段; 模块化程序结构中的子模块; 具有特殊功能的程序段; 中断服务程序。 采用子程序结构的优点 简化了程序设计过程,使程序设计时间大量节省。 缩短了程序的长度,节省了计算机汇编源程序的时间和程序的存储空间。 增加了程序的可读性,便于对程序的修改和调试。 方便了程序的模块化、结构化和自顶向下的程序设计。 子程序的定义 子程序是用过程定义伪指令PROC和ENDP来定义的,还应指出过程的类型属性,因此,子程序也可称为过程。 在PROC和ENDP之间是为完成某一特定功能的一连串指令,其最后一条指令是返回指令RET。 子程序定义格式 过程名 PROC [NEAR或FAR] ┇ 过程体语句 RET 过程名 ENDP 其中,“过程名”是子程序入口的符号地址,NEAR或FAR是过程的类型属性,它指出对该过程的调用是段内的调用还是段间调用。NEAR用于段内调用,而FAR用于段间调用。 过程属性的确定原则 调用程序和过程若在同一代码段中,则使用NEAR属性。 调用程序和过程若不在同一代码段中,则使用FAR属性。 主程序应定义为FAR属性。因为程序的主过程被看作是DOS调用的一个子程序,而DOS对主过程的调用和返回都是FAR属性。 子程序的调用格式 子程序的调用和返回是由CALL和RET指令完成。 子程序的正确调用和正确返回是执行子程序的基本保证。 CALL指令的格式为:CALL 过程名 为了使子程序正确地执行,除了正确选择过程的属性外,正确使用堆栈也是非常重要的。 例:段内直接调用,显示P CODE SEGMENT ASSUME CS:CODE START:CALL DISP MOV AH, 4CH INT 21H DISP: MOV DL, ’P’ MOV AH, 2 INT 21H RET CODE ENDS END START DISP PROC MOV DL, ‘P’ MOV AH, 2 INT 21H RET DISP ENDP 例:段内间接调用,显示P CODE SEGMENT ASSUME CS:CODE START:MOV OFFSET DISP CALL BX MOV AH, 4CH INT 21H DISP: MOV DL, ’P’ MOV AH, 2 INT 21H RET CODE ENDS END START 例:段间直接调用,显示P CODE1 SEGMENT ASSUME CS: CODE1 START: CALL FAR PTR DISP MOV AH, 4CH INT 21H DODE1 ENDS CODE2 SEGMENT ASSUME CS:CODE2 DISP PROC FAR MOV DL, ’P’ MOV AH, 2 INT 21H RET DISP ENDP CODE2 ENDS END START 例:段间间接调用 DATA
您可能关注的文档
最近下载
- 2025年普通高等学校招生全国统一考试(黑吉辽蒙)化学含答案.docx VIP
- 蒂森电梯MC2电气原理图纸标注.pdf
- XCT80L6_1汽车起重机技术规格书.pdf VIP
- 索尼SW7600GR中文说明书.pdf
- 2026年时事政治测试题库100道附参考答案(完整版).docx VIP
- 儿科抢救药品临床应用与管理.pptx VIP
- 河北广谋新材料科技有限公司年产600万平方米复合革及隔音布、400万平方米新型复合网项目环境影响报告表.docx VIP
- 部编版语文五年级下册第七单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第六单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第五单元教材解读大单元集体备课.pptx VIP
原创力文档

文档评论(0)