1 / 51
文档名称:

精品PPT课件--第6章_子程序结构(书).ppt

格式:ppt   页数:51
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

精品PPT课件--第6章_子程序结构(书).ppt

上传人:wz_198614 2014/4/3 文件大小:0 KB

下载得到文件列表

精品PPT课件--第6章_子程序结构(书).ppt

文档介绍

文档介绍:第六章子程序结构
第一节子程序设计方法
第二节结构伪操作
第三节程序举例
子程序又称为过程,它相当于高级语言中的过程和函数,在一个程序的不同部分,往往要用到类似的程序段,这些程序段的功能和结构形式都相同,只是某些变量的赋值不同,此时就可以把这些程序段写成子程序形式,以便调用。
子程序设计
子程序的概念
子程序的定义
子程序设计方法
子程序应用举例
子程序的嵌套与递归调用
返回本章首页
子程序的概念
在程序设计中,我们会发现一些多次无规律重复的程序段或语句序列。解决此类问题一个行之有效的方法就是将它们设计成可供反复调用的独立的子程序结构,以便在需要时调用。在汇编语言中,子程序又称过程。
调用子程序的程序称为主调程序或主程序。
返回本节
子程序的定义
子程序的定义是由过程定义伪指令PROC和ENDP来完成的。其格式如下:
过程名 PROC [NEAR/FAR]

过程名 ENDP
其中PROC表示过程定义开始,ENDP表示过程定义结束。过程名是过程入口地址的符号表示。
一般过程名同标号一样,具有三种属性,即段属性、偏移地址属性以及类型属性。
返回本节

过程定义伪操作用在过程(子程序)的前后,使整个过程形成清晰的,具有特定功能的代码块。
格式:procedure name proc attribute (far/near)
procedure name endp
①其中,过程名为标识符,它又是子程序入口的符号地址,它的写法与标号相同。
②NEAR属性: 段内调用,及返回
FAR属性:段间调用,及返回
CALL调用及RET返回的属性由程序决定。
返回本章
用户对过程属性的确定原则:
⑴调用程序和过程在同一个代码段中则使用NEAR属性;
⑵调用程序和过程不同一个代码段中则使用FAR属
例:调用程序和子程序在同一代码段中。
Main proc far | main proc far
| 
  |
Call sub r1 | Call sub r1
|
Ret | ret
Main endp | subr1 proc near
  |
  |
Subr1 proc near | ret
  |
Ret | subr1 endp
Subr1 endp | main endp
因为调用程序MAIN和子程序SUBR1是在同一代码段中,
所以SUBR1定义为NEAR属性,这样MAIN中对SUBR1的调用和SUBR1中的RET就都是NEAR属性的。
一般MAIN应定义为FAR属性,这是由于我们把程序的主过程看作DOS调用的一个子过程。所以DOS对MAIN的调用以及MAIN中的RET就是FAR属性的。

SEGX SEG MENT
 SUBT PROC FAR
  RET
SUBT ENDP
CALL SUBT
 SEGX ENDS
SEGY SEG MENT
CALL SUBT
 SEGY ENDS
SUBT为一过程,它有两处被调用,一处是与它在同一段的SEGY段内,另一处是在另一段SEGY段内,为此SUBT必须具有FAR属性,以适应SEGY段调用的需要。
SUBT既有FAR属性,则在SEGX和SEGY段对SUBT的调用就具有FAR属性了。
2、子程序的调用和返回。
过程的正确执行是由子程序的正确调用及正确返回保证的。
①调用CALL指令,返回RET指令;
子程序运行期间的堆栈状态
②CALL时以使返回地址入栈,RET时应使返回地址出栈。
3、保存与恢复寄存器。
由于调用程序(主程序)和子程序经常是分别编制的,所以他们所使用的寄存器往往会发生冲突,如果主程序在调用子程序以前的某个寄存器内容,在从子程序返回后还有用,而子程序又恰好使用了同一个寄存器,造成破坏了该寄存器的原有内容,导致程序错误。
为此,我们把子程序要使用的寄存器内容保存在堆栈中,而在退出子程序前,把寄存器恢复原状。

最近更新

2025年烟台南山学院单招职业倾向性测试题库附.. 39页

2025年烟台汽车工程职业学院单招职业适应性测.. 39页

2026年安徽林业职业技术学院单招职业技能考试.. 43页

新冠肺炎疫情防控财政补助资金自查自纠报告 5页

2025年甘肃农业职业技术学院单招职业适应性考.. 40页

2025年甘肃有色冶金职业技术学院单招职业技能.. 39页

2026年宜春幼儿师范高等专科学校单招职业技能.. 41页

2026年宣城职业技术学院单招综合素质考试题库.. 43页

2025年盘锦职业技术学院单招职业技能考试模拟.. 42页

2025年石家庄医学高等专科学校单招职业技能考.. 39页

2025年石家庄幼儿师范高等专科学校单招职业倾.. 41页

2026年山东海事职业学院单招职业技能测试模拟.. 42页

2025年神木职业技术学院单招职业倾向性考试模.. 42页

2026年山东艺术设计职业学院单招职业倾向性测.. 42页

2025年福建农业职业技术学院单招综合素质考试.. 41页

2025年福建水利电力职业技术学院单招职业倾向.. 41页

2026年山西经贸职业学院单招职业倾向性测试题.. 41页

2025年红河卫生职业学院单招职业适应性考试模.. 38页

2025年绵阳职业技术学院单招职业技能测试题库.. 40页

2025年苏州健雄职业技术学院单招综合素质考试.. 39页

2025年苏州工业园区服务外包职业学院单招职业.. 41页

2025年苏州市职业大学单招职业技能测试模拟测.. 39页

2025年苏州高博软件技术职业学院单招综合素质.. 39页

2026年广东科学技术职业学院单招职业倾向性考.. 42页

2025年衡阳幼儿师范高等专科学校单招综合素质.. 40页

2026年广西幼儿师范高等专科学校单招职业技能.. 42页

2025年西双版纳职业技术学院单招综合素质考试.. 40页

2025年西安信息职业大学单招职业技能考试模拟.. 41页

2025年广州卫生职业技术学院单招职业技能测试.. 64页

美团代运营业务委托合同 6页