西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第六章 子程序设计

第章子程序设计 第章子程序设计 61子程序的概念与特性 62子程序的结构形式 6.3子程序调用和返回指令 64子程序的设计 65子程序的参数传递方法 6.6子程序的嵌套与递归 6.7综合举例 BACK
第6章 子 程 序 设 计 第6章 子 程 序 设 计 6.1 子程序的概念与特性 6.2 子程序的结构形式 6.3 子程序调用和返回指令 6.4 子程序的设计 6.5 子程序的参数传递方法 6.6 子程序的嵌套与递归 6.7 综合举例

第章子程序设计 6.1子程序的概念与特性 6.1.1子程序的概念 人们在编写程序时,常常会遇到这样的情况:某些完成相 同的功能,只是加工的数据略有不同的指令组(程序段)需要在 个程序的若干不同地方使用多次,或是在一个程序中的多个 地方或多个程序中的多个地方用到了同一段程序。这些程序段 的功能和结构形式都相同,只是某些变量的赋值不同。那么就 可以将这段程序抽取出来存放在某一存储区域,每当需要执行 这段程序时,就转到这段程序去执行,执行完后再返回到原来 的程序继续运行。把抽取出来的这段具有特定功能的程序段称 为子程序
第6章 子 程 序 设 计 6.1 子程序的概念与特性 6.1.1 子程序的概念 人们在编写程序时,常常会遇到这样的情况:某些完成相 同的功能,只是加工的数据略有不同的指令组(程序段)需要在 一个程序的若干不同地方使用多次,或是在一个程序中的多个 地方或多个程序中的多个地方用到了同一段程序。这些程序段 的功能和结构形式都相同,只是某些变量的赋值不同。那么就 可以将这段程序抽取出来存放在某一存储区域,每当需要执行 这段程序时,就转到这段程序去执行,执行完后再返回到原来 的程序继续运行。把抽取出来的这段具有特定功能的程序段称 为子程序

第章子程序设计 例如,计算某个数的立方根可能在一个程序中使用多次,但 每次自变量不同。又如,设计名字识别程序时,有时需要判断字 符是否为字母,有时又需要判断字符是否为分隔符。这样的指令 组所包含的指令,少则几条十几条,多则数十条几百条。如果每 处都重复把它写一次,这显然太浪费程序设计的时间和计算机 的存储空间。但这又不能设计成循环程序。因此,人们通过实践, 在程序设计的早期就想出了一种较好的办法,就是把这组指令分 离出来,单独写成一个所谓的“子程序”,并建立进入它和从它 出来时所需要的连接信息。只需在需要处调用这个子程序就行 换言之,子程序方法使得人们把“多次编写”的情况转变成“ 次编写,多次调用”的情况。子程序相当于高级语言中的过程或 函数
第6章 子 程 序 设 计 例如,计算某个数的立方根可能在一个程序中使用多次,但 每次自变量不同。又如,设计名字识别程序时,有时需要判断字 符是否为字母,有时又需要判断字符是否为分隔符。这样的指令 组所包含的指令,少则几条十几条,多则数十条几百条。如果每 一处都重复把它写一次,这显然太浪费程序设计的时间和计算机 的存储空间。但这又不能设计成循环程序。因此,人们通过实践, 在程序设计的早期就想出了一种较好的办法,就是把这组指令分 离出来,单独写成一个所谓的“子程序”,并建立进入它和从它 出来时所需要的连接信息。只需在需要处调用这个子程序就行。 换言之,子程序方法使得人们把“多次编写”的情况转变成“一 次编写,多次调用”的情况。子程序相当于高级语言中的过程或 函数

第章子程序设计 通常,把要调用程序的那个程序称为主程序或调用程序,也 称转子;而把被调用的程序称为子程序或被调用程序,也称返主。 把它们之间控制的转移称为子程序的连接。主程序与子程序的关 系如图6-1所示 主/转子 程序 子程序 返主 图6-1主程序与子程序的关系
第6章 子 程 序 设 计 图6-1 主程序与子程序的关系 通常,把要调用程序的那个程序称为主程序或调用程序,也 称转子;而把被调用的程序称为子程序或被调用程序,也称返主。 把它们之间控制的转移称为子程序的连接。主程序与子程序的关 系如图6-1所示。 转子 子 程 序 主 程 序 返主

第章子程序设计 在程序设计的实际应用中,子程序的引入可以节省存储空 间及程序设计所花费的时间,有利于设计一个大而复杂的程序, 即把一个大而复杂的程序设计成一个主程序和若千个子程序。 这有助于减少程序的复杂性,便于模块化设计,也便于程序的 调试及修改等。但子程序也有其不足之处,这就是要多花费一 些机器时间
第6章 子 程 序 设 计 在程序设计的实际应用中,子程序的引入可以节省存储空 间及程序设计所花费的时间,有利于设计一个大而复杂的程序, 即把一个大而复杂的程序设计成一个主程序和若干个子程序。 这有助于减少程序的复杂性,便于模块化设计,也便于程序的 调试及修改等。但子程序也有其不足之处,这就是要多花费一 些机器时间

第章子程序设计 6.1.2子程序的分类 子程序的种类很多,有单入口、单出口子程序,也有多入 口、多出口子程序。对于一些复杂的子程序,还常常要调用别 的子程序。这种调用可以是一个子程序调用另外的一个子程序 也可以是一个子程序调用自身,这就形成了嵌套结构和递归结 构,分别称为嵌套子程序和递归子程序。子程序嵌套的示意图 如图6-2所示
第6章 子 程 序 设 计 6.1.2 子程序的分类 子程序的种类很多,有单入口、单出口子程序,也有多入 口、多出口子程序。对于一些复杂的子程序,还常常要调用别 的子程序。这种调用可以是一个子程序调用另外的一个子程序, 也可以是一个子程序调用自身,这就形成了嵌套结构和递归结 构,分别称为嵌套子程序和递归子程序。子程序嵌套的示意图 如图6-2所示

第章子程序设计 主程序 子程序 子程序2 图6-2嵌套子程序示意图
第6章 子 程 序 设 计 图6-2 嵌套子程序示意图 子 程 序 1 主 程 序 子 程 序 2

第章子程序设计 6.1.3子程序的特性 1.通用性 子程序具有通用性,便于共享。例如,键盘管理程序,磁 盘读写程序,标准函数程序等等,许多程序中要用到这些程序, 这种可共享的程序最适宜写成子程序。而只能完成特定功能的 子程序,由于缺乏通用性,难于共享,就不适宜写成子程序
第6章 子 程 序 设 计 6.1.3 子程序的特性 1.通用性 子程序具有通用性,便于共享。例如,键盘管理程序,磁 盘读写程序,标准函数程序等等,许多程序中要用到这些程序, 这种可共享的程序最适宜写成子程序。而只能完成特定功能的 子程序,由于缺乏通用性,难于共享,就不适宜写成子程序

第章子程序设计 2.重复性 子程序是可多次重复使用的。一个子程序只占一段存储空 间,但可以多次地调用它,这样就避免了编程人员的重复劳动 节省了存储空间。由于增加了调用、返回指令以及现场保护, 因此程序执行时间会增长。如果一个程序段只用到一次,就没 有必要编写成子程序形式
第6章 子 程 序 设 计 2.重复性 子程序是可多次重复使用的。—个子程序只占一段存储空 间,但可以多次地调用它,这样就避免了编程人员的重复劳动, 节省了存储空间。由于增加了调用、返回指令以及现场保护, 因此程序执行时间会增长。如果一个程序段只用到一次,就没 有必要编写成子程序形式

第章子程序设计 3.可重定位性 可重定位性是指子程序可以存放在存储区的任何地址处。 如果子程序只能存放在固定的地址处,则在编写主程序时要特 别注意存储单元的分配,不要使主程序占用了子程序的存储单 元而破坏子程序,这样就会给编程人员带来很大麻烦,而且在 装配主程序和子程序时往往造成存储空间的冲突或浪费。为了 使子程序可重定位在内存的任意区域中,编制子程序时,不应 采用绝对地址,而应全部使用相对地址
第6章 子 程 序 设 计 3.可重定位性 可重定位性是指子程序可以存放在存储区的任何地址处。 如果子程序只能存放在固定的地址处,则在编写主程序时要特 别注意存储单元的分配,不要使主程序占用了子程序的存储单 元而破坏子程序,这样就会给编程人员带来很大麻烦,而且在 装配主程序和子程序时往往造成存储空间的冲突或浪费。为了 使子程序可重定位在内存的任意区域中,编制子程序时,不应 采用绝对地址,而应全部使用相对地址
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第五章 基本结构程序设计.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第四章 指令及汇编语言源程序结构.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第三章 寻址方式和指令系统.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第二章 微处理器的结构及存储器组成.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第一章 基础知识.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第十章 中断和输入/输出程序设计.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)目录(编著:李强、温春).ppt
- 北方交通大学:《电子商务的系统分析与设计》 第九章 电子商务系统安全子系统设计.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第八章 电子支付与交易系统设计.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第七章 商务应用系统设计.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第六章 企业信息门户设计.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第五章 电子商务系统设计.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第四章 系统分析.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第十一章 案例分析.ppt
- 北方交通大学:《电子商务的系统分析与设计》 第十章 系统实施与维护管理.ppt
- 北方交通大学:《电子商务的系统分析与设计》 绪论.ppt
- 《电子商务》电子课件 (共五章).ppt
- 《ASP程序设计》 第十四章 设计实例.ppt
- 《ASP程序设计》 第十三章 容错环节与ASP程序调试.ppt
- 《ASP程序设计》 第十二章 Web数据库的操作.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第七章 复杂汇编程序设计.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第八章 高级汇编技术.ppt
- 西安电子科技大学出版社:《汇编语言程序设计 Assembly Language Programming》课程教材电子教案(PPT课件讲稿)第九章 程序设计的一些编程技巧.ppt
- 《C++语言》课程教学资源(作业习题)作业题1.doc
- 《C++语言》课程教学资源(作业习题)作业题2.doc
- 《C++语言》课程教学资源(PPT课件讲稿)第一章 绪论——面向对象的程序设计语言.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第二章(2-6)赋值表达式和类型转换.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第三章(3-4)循环的中断.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第四章(4-10)编译预处理.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第六章 指针和引用.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第六章(6-4)指针和动态内存分配.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第七章 计算用户输入的一个正整数各位之和.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第八章 类和对象.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第九章(9-3)拷贝初始化构造函数.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十章 顺序表.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十章(10-4)虚基类.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十一章(11-3)静态成员.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十二章(12-2)几个特殊运算符的重载.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十三章 输入和输出.pps
- 《C++语言》课程教学资源(PPT课件讲稿)第十四章 模板.pps