清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第四章 程序设计技巧(4.4)子程序与扩展子程序

44子程序与扩展子程序 在程序设计中,常常会遇到某些功能完全相同 的程序段在同一程序的多处或不同程序中出现, 如求一个数的阶乘,比较两数大小,求字符串 的长度,数制转换等等。为了节省存贮空间, 减少编制程序的重复劳动,可以将这些多次重 复的程序段从整个程序中独立出来,附加一些 额外语句,将它编制成一种具有公用性的,独 立的程序段——子程序,并通过适当的方法把 它与其他程序段链接起来,这种程序设计的方 法就称为子程序设让
4.4 子程序与扩展子程序 ◼ 在程序设计中,常常会遇到某些功能完全相同 的程序段在同一程序的多处或不同程序中出现, 如求一个数的阶乘,比较两数大小,求字符串 的长度,数制转换等等。为了节省存贮空间, 减少编制程序的重复劳动,可以将这些多次重 复的程序段从整个程序中独立出来,附加一些 额外语句,将它编制成一种具有公用性的,独 立的程序段——子程序,并通过适当的方法把 它与其他程序段链接起来,这种程序设计的方 法就称为子程序设计

子程序结构的优点: ■可以减小程序的长度,节省了计算机汇 编源程序的时间和程序的存储空间。 子程序可以重复使用,使得程序设计时 间可以大量节省 ■增加了程序的可读性,方便对程序的修 改、调试 子程序是模块化、结构化、自顶向下程 序设计的基础
子程序结构的优点: ◼ 可以减小程序的长度,节省了计算机汇 编源程序的时间和程序的存储空间。 ◼ 子程序可以重复使用,使得程序设计时 间可以大量节省。 ◼ 增加了程序的可读性,方便对程序的修 改、调试。 ◼ 子程序是模块化、结构化、自顶向下程 序设计的基础

MASM6x子程序定义的方法 般过程定义(子程序)伪指令。 子程序在汇编语言中也称为过程 ( Procedure),它相当于高级语言C++ 的函数和VB的过程 ■扩展过程定义(扩展子程序)伪指令
MASM6.x子程序定义的方法 ◼ 一般过程定义(子程序)伪指令。 子程序在汇编语言中也称为过程 (Procedure),它相当于高级语言C++ 的函数和VB的过程 ◼ 扩展过程定义(扩展子程序)伪指令

一般过程定义(子程序)伪指令 过程定义的一般格式为: 过程名PROC[ NEAR/FAR] ;过程定义体 RET 过程名ENDP
一般过程定义(子程序)伪指令 ◼ 过程定义的一般格式为: 过程名 PROC [NEAR/FAR] . . ;过程定义体 . RET 过程名 ENDP

过程名由程序员来命名,命名方法同变量名, 同一源程序中不能有相同的过程名 PROC为过程定义开始伪指令,ENDP为过程定 义结東伪指令, PROC-ENDP必须配对使用;配 对的 PROC-ENDP前面的过程名应相同 NEAR/FAR定义了过程的属性,NEAR属性的过 程只能被相同代码段的程序调用,称为段内近 调用;FAR属性的过程只能被相同或不同 代码段的程序调用,称为段间远调用
◼ 过程名由程序员来命名,命名方法同变量名, 同一源程序中不能有相同的过程名。 ◼ PROC为过程定义开始伪指令,ENDP为过程定 义结束伪指令,PROC-ENDP必须配对使用;配 对的PROC-ENDP前面的过程名应相同。 ◼ NEAR/FAR定义了过程的属性,NEAR属性的过 程只能被相同代码段的程序调用,称为段内近 调用;FAR 属性的过程只能被相同或不同 代码段的程序调用,称为段间远调用

子程序的结构形式 一个完整的子程序一般包括下列内容 (1)子程序的说明部分 (2)子程序的调用和返回 (3)子程序的现场保护和现场恢复
子程序的结构形式 ◼ 一个完整的子程序一般包括下列内容: (1) 子程序的说明部分 (2) 子程序的调用和返回 (3) 子程序的现场保护和现场恢复

子程序的说明部分 子程序的说明部分一般包括如下内容: (1)子程序名。命名时要见名知意。 (2)子程序的功能。说明子程序完成的任务。 (3)子程序的入口参数。说明子程序运行所需参数及存放 位置。 (4)子程序的出口参数。说明子程序的运行结果的参数及 存放位置。 (5)子程序所占用的寄存器和工作单元 (6)子程序调用示例
子程序的说明部分 ◼ 子程序的说明部分一般包括如下内容 : (1)子程序名。命名时要见名知意。 (2)子程序的功能。说明子程序完成的任务。 (3)子程序的入口参数。说明子程序运行所需参数及存放 位置。 (4)子程序的出口参数。说明子程序的运行结果的参数及 存放位置。 (5)子程序所占用的寄存器和工作单元。 (6)子程序调用示例

举例 ;子程序名:B16TOD ;子程序的功能:完成将一个16位二进制数(无 符号数)转换为对应的十进制数的 ASCI码,存放在共享存储区 SHALLUNIT ;子程序的入口参数:存放在 BINNUM存储单元 ;子程序的出口参数:存放在共享存储区 SHALLUNIT和共享存储单元 ADDRESS ;子程序所占用的寄存器和:AX,DX,SI,BX ;子程序调用示例:
举例 ;子程序名:B16TOD ;子程序的功能:完成将一个16位二进制数(无 符号数)转换为对应的十进制数的 ;ASCII码,存放在共享存储区SHALLUNIT ;子程序的入口参数:存放在BINNUM存储单元 ;子程序的出口参数:存放在共享存储区 SHALLUNIT和共享存储单元ADDRESS ;子程序所占用的寄存器和:AX,DX,SI,BX ;子程序调用示例:

程序的调用和返回 main sub1 sU call subl call sub2 返回 地址 en ret ret
子程序的调用和返回 . . . . . . . . . . . . ret ret call sub1 call sub2 . . . . . . main sub1 sub2 end 返回 地址

■CALL指令的执行分成两步 第一步,保护返回地址(CAL指令下 条指令的地址),利用堆栈实现,即将 返回地址压入堆栈 第二步,转向子程序,即把子程序的首 地址送入IP或CS:IP ■RET指令的功能是返回主程序,即把子程 序的返回地址送入IP或CSIP
◼ CALL指令的执行分成两步 : 第一步,保护返回地址(CALL指令下一 条指令的地址),利用堆栈实现,即将 返回地址压入堆栈; 第二步,转向子程序,即把子程序的首 地址送入IP或CS:IP ◼ RET指令的功能是返回主程序,即把子程 序的返回地址送入IP或CS:IP
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第四章 程序设计技巧(4.1-4.2-4.3).ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)硬指令和伪指令.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第三章(3.2.5)控制转移类指令.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第三章(3.2.3)位操作类指令.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第三章(3.2.2)算术运算类指令.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第三章(3.2)数据传送类指令.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第三章(3.1)16位汇编程序设计概述.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第11章 人机交互接口.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第10章 数/模、模/数转换接口.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第9章 常用可编程接口芯片及应用.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第8章 DMA控制器及其应用.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第7章 中断系统和中断控制器.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第6章 I/O接口和总线.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第5章 存储器.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第2章 微处理器内部结构和外部特性.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学课件(PPT讲稿)第1章 微型计算机基础.ppt
- 清华大学出版社:《现代微机原理及接口技术》课程教学资源(作业习题)第6-9-11章 习题答案.doc
- 清华大学出版社:《现代微机原理及接口技术》课程教学资源(作业习题)第5、8、10章 习题答案.doc
- 清华大学出版社:《现代微机原理及接口技术》课程教学资源(作业习题)第3-4章 习题答案.doc
- 清华大学出版社:《现代微机原理及接口技术》课程教学资源(作业习题)第1-2-7章 习题答案.doc
- 《信息系统分析与设计》课程教学资源(教学大纲).pdf
- 《信息资源建设与组织》教学资源(PPT讲稿)主题标引.ppt
- 管理学院信息管理与信息系统专业必修课程教学大纲汇编.doc
- 《管理信息系统》课程教学资源(PPT课件讲稿)第二章 管理信息系统概论.ppt
- 大连民族大学(大连民族学院):《工程管理信息系统》课程教学资源(PPT课件讲稿)第二章 工程管理信息系统的开发.ppt
- 电子商务中的智能卡技术(PPT讲稿)Smart Card Technology in Electronic Commerce.ppt
- 大连民族大学(大连民族学院):《工程管理信息系统》课程教学资源(PPT课件讲稿)第一章 工程信息管理概论(主讲:王楠楠).ppt
- 上海交通大学:Hierarchical Convolutional Features for Visual Tracking(Online Object Tracking with Proposal Selection).pptx
- 《文献检索》课程教学资源(PPT讲稿)工具书检索与利用.ppt
- 西安电子科技大学:《信息管理学》课程教学资源(PPT课件讲稿)第5章 信息系统.ppt
- 信息描述绪论(PPT课件讲稿)information description.ppt
- 《系统工程》课程教学资源(PPT课件讲稿)第三章系统模型与模型化.ppt
- 海南大学:《管理信息系统》课程教学资源(PPT课件讲稿)第十章 决策支持系统(主讲:陈明锐).ppt
- 《管理信息系统》课程教学资源(PPT课件讲稿)第2章 信息管理的基本原理.ppt
- 《地理信息系统原理与方法》课程教学资源(PPT课件讲稿)空间数据管理.ppt
- 《管理信息系统》课程教学资源(PPT课件讲稿)第十二章 电子商务.ppt
- 《信息检索与利用》课程教学资源(PPT课件讲稿)第二章 信息检索基础知识.ppt
- 《信息系统》课程教学资源(PPT课件)第七章 信息系统的安全与运行管理.ppt
- 北京师范大学:《管理信息系统》课程PPT教学课件(教育方向)第6讲 管理信息系统的项目管理.ppsx
- 《管理信息系统的系统》课程教学资源(PPT课件讲稿)第八章 系统实施.ppt