第5章结构化程序设计5
1子程序的概念5
2子程序的定义、调用和返回**5
3子程序的现场保护与参数传递**5
4子程序设计*5
5子程序的嵌套与递归调用5
6宏汇编程序设计教学基本内容5
1子程序的概念1、子程序:在程序设计中,我们会发现一些多次无规律重复的程序段或语句序列
解决此类问题一个行之有效的方法就是将它们设计成可供反复调用的独立的子程序结构,以便在需要时调用
在汇编语言中,子程序又称过程
过程(子程序):是指功能相对独立的一段程序
主程序和子程序间的关系:调用子程序的程序称为主调程序或主程序,被调用的程序称为子程序
2、程序中使用子程序的好处子程序作为一个功能性模块,供一个程序甚至多个程序使用:可以简化源程序结构;提高程序的可读性与可维护性;有利于代码复用;提高程序的设计效率
1、子程序的定义:由子程序定义伪指令PROC和ENDP来完成
其格式如下:子程序名PROC[NEAR/FAR]┆;过程体子程序名ENDP解释:(1)子程序名是子程序入口地址的符号表示
同标号一样,具有三种属性,即段属性、偏移地址属性以及类型属性
(2)PROC表示子程序定义开始,ENDP表示子程序定义结束
(3)NEAR/FAR2、子程序的调用和返回过程定义后,可在主程序中用CALL指令,反复调用
过程结束,由返回指令RET返回主程序
2子程序的定义、调用和返回子程序调用指令(CALL)CALL指令分成4种类型CALL子程序名;段内直接调用CALLr16/m16;段内间接调用CALLfarptr子程序;段间直接调用CALLfarptrmem;段间间接调用CALL指令需要保存返回地址:–段内调用——偏移地址IP入栈SP←SP-2,SS:[SP]←IP–段间调用——偏移地址IP和段地址CS入栈SP←SP-2,SS:[SP]←CSSP←SP-2,SS:[SP]←IP5
2子程序的定义