《计算机汇编语言》课程教学资源(教案讲义)第六章 子程序结构

第6章子程序结构 教学目的:掌握微型汇编语言程序分析和设计方法 2.教学要求 ①熟悉汇编语言程序设计的基本步骤 ②掌握程序流程图的使用,会利用其分析问题 ③掌握汇编语言的顺序、分支、循环程序的设计 ④了解实模式下80386及其后继机型的汇编语言的程序设计 3.教学重点: ①利用流程图分析问题 ②顺序、分支、循环程序的设计。 掌握难点 ①分支程序设计 ②循环程序设计 5.教学进程安排:P170~190 6.教学方法 课堂讲授 7.教学内容摘要: 6.1子程序的概念 6.1.1子程序概念 主程序 子程序 调用子程序 调用子程序 调用子程序 图6.1主程序与子程序间的关系
第 6 章 子程序结构 1.教学目的:掌握微型汇编语言程序分析和设计方法 2.教学要求: ① 熟悉汇编语言程序设计的基本步骤。 ② 掌握程序流程图的使用,会利用其分析问题。 ③ 掌握汇编语言的顺序、分支、循环程序的设计。 ④ 了解实模式下 80386 及其后继机型的汇编语言的程序设计 3.教学重点: ①利用流程图分析问题。 ②顺序、分支、循环程序的设计。 4.掌握难点: ①分支程序设计 ②循环程序设计 5.教学进程安排:P170~190 6.教学方法: 课堂讲授 7.教学内容摘要: 6.1 子程序的概念 6.1.1 子程序概念 调用子程序 调用子程序 调用子程序 返 回 子程序 主程序 图 6.1 主程序与子程序间的关系

把可以多次调用、能够完成特定操作功能的程序段编写成独立的程序模块称为子程 序,又称其为过程。主程序与子程序之间的关系如图6.1所示。 6.1.2.子程序特性 1.重复性 通用性 3.可浮动性 4.可递归和可重入性 6.2子程序结构形式与操作 6.2.1子程序定义 格式: PROCEDURE NAME PROC ATTRIBUTE PROCEDURE NAME ENDP 子程序名 2.属性 ①NEAR ②FAR。 6.2.2子程序的调用和返回 CALL指令 指令 6.2.3现场保护与现场恢复 1.现场保护与现场恢复的原因 2.现场保护与现场恢复的实现 (1) PUSH/POP (2)PUSHA/ POPA (3) PUSHAD/POPAD 6.3子程序的参数传送
把可以多次调用、能够完成特定操作功能的程序段编写成独立的程序模块称为子程 序,又称其为过程。主程序与子程序之间的关系如图 6.1 所示。 6.1.2. 子程序特性 1.重复性 2.通用性 3.可浮动性 4.可递归和可重入性 6.2 子程序结构形式与操作 6.2.1 子程序定义 格式: PROCEDURE NAME PROC ATTRIBUTE ┇ PROCEDURE NAME ENDP 1.子程序名 2.属性 ①NEAR ②FAR。 6.2.2 子程序的调用和返回 1.CALL 指令 2.RET 指令 6.2.3 现场保护与现场恢复 1.现场保护与现场恢复的原因 2.现场保护与现场恢复的实现 (1)PUSH/POP (2)PUSHA/POPA (3)PUSHAD/POPAD 6.3 子程序的参数传送

6.3.1通过寄存器传送参数 【例63】十进制到十六进制数转换程序。程序要求从键盘取得一个十进制数,然后把该 数以十六进制形式在屏幕上显示出来 6.32直接参数传递 若子程序和调用程序在同一源文件(同一程序模块)中,则子程序可直接访问模块中的 变量,进行参数传递 【例64】主程序MAⅣN和子程序 PROADD在同一源文件中,要求用子程序 PROADD累加数组 中的所有元素,并把和(不考虑溢出的可能性)送到指定的存储单元中去。在这里,子程序 PROADD直接访问模块的数据区 6.3.3.通过地址表传递参数地址 这种方法是在主程序中建立一个地址表,把要传送给子程序的参数都存放在地址表 中,然后把地址表的首地址通过寄存器BX传送到子程序中去。子程序通过地址表取得所 需参数,并把结果存入指定的存储单元中去。 例6-4采用通过地址表传送参数方法的程序实现 6.34通过堆栈传送参数或参数地址 此方法是在主程序里把参数地址保存到堆栈中,在子程序里从堆栈中取出参数以达到 传送参数的目的 例6-4采用通过堆栈传送参数地址法的程序实现。 6.3.5增强功能的子程序定义伪操作 从MASM5.1版开始为用户提供了增强功能的子程序定义伪操作,其格式为: PROCNAME PROC [ATTRIBUTES FIELD] [USES REGISTER LIST]L, PARAMETER FIELD] PROCNAME ENDP 1.属性字段 2.USES字段 参数字段 【例6-5】用增强功能的子程序定义伪操作的程序实现例6-4 6.4子程序的嵌套与递归 6.4.1子程序的嵌套 1.子程序的嵌套
6.3.1 通过寄存器传送参数 【例 6-3】十进制到十六进制数转换程序。程序要求从键盘取得一个十进制数,然后把该 数以十六进制形式在屏幕上显示出来。 6.3.2 直接参数传递 若子程序和调用程序在同一源文件(同一程序模块)中,则子程序可直接访问模块中的 变量,进行参数传递。 【例 6-4】主程序 MAIN 和子程序 PROADD 在同一源文件中,要求用子程序 PROADD 累加数组 中的所有元素,并把和(不考虑溢出的可能性)送到指定的存储单元中去。在这里,子程序 PROADD 直接访问模块的数据区。 6.3.3. 通过地址表传递参数地址 这种方法是在主程序中建立一个地址表,把要传送给子程序的参数都存放在地址表 中,然后把地址表的首地址通过寄存器 BX 传送到子程序中去。子程序通过地址表取得所 需参数,并把结果存入指定的存储单元中去。 例 6-4 采用通过地址表传送参数方法的程序实现 6.3.4 通过堆栈传送参数或参数地址 此方法是在主程序里把参数地址保存到堆栈中,在子程序里从堆栈中取出参数以达到 传送参数的目的。 例 6-4 采用通过堆栈传送参数地址法的程序实现。 6.3.5 增强功能的子程序定义伪操作 从 MASM5.1 版开始为用户提供了增强功能的子程序定义伪操作,其格式为: PROCNAME PROC [ATTRIBUTES FIELD][USES REGISTER LIST][,PARAMETER FIELD] ┇ PROCNAME ENDP 1.属性字段 2.USES 字段 3.参数字段 【例 6-5】用增强功能的子程序定义伪操作的程序实现例 6-4 6.4 子程序的嵌套与递归 6.4.1 子程序的嵌套 1.子程序的嵌套

2.嵌套深度。 图6.5表示了嵌套深度为2时的子程序嵌套情况。 主程序 子程序A 程序B PROC A PRO B CALL PROC A CALL PROC B RET 图6.5子程序的嵌套 【例6-7】设从BUF开始存放若干无符号字节数据,找出其中的最小值并以16进制形式输 6.4.2子程序的调用 1.递归的概念 2.递归的特点 【例6-8】求自然数N(N>=1)的阶乘 8.参考资料:《IBM-PC汇编语言程序设计》沈美明 9.作业:P189习题6 10.本章小结 本部分要求理解性学习和应用,不要死记硬背,重点掌握子程序结构的应用 环境和具体用法,以达到对汇编程序设计的优化
2.嵌套深度。 图 6.5 表示了嵌套深度为 2 时的子程序嵌套情况。 图 6.5 子程序的嵌套 【例 6-7】设从 BUF 开始存放若干无符号字节数据,找出其中的最小值并以 16 进制形式输 出。 6.4.2 子程序的调用 1.递归的概念 2.递归的特点 【例 6-8】求自然数 N(N>=1)的阶乘 8.参考资料:《IBM-PC 汇编语言程序设计》沈美明 9.作业:P189 习题 6 10.本章小结: 本部分要求理解性学习和应用,不要死记硬背,重点掌握子程序结构的应用 环境和具体用法,以达到对汇编程序设计的优化。 主程序 子程序 A 子程序 B PROC_A PRO_B CALL PROC_A CALL PROC_B RET RET
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《计算机汇编语言》课程教学资源(教案讲义)第五章 程序控制结构及其程序设计.doc
- 《计算机汇编语言》课程教学资源(教案讲义)第四章 汇编语法及其程序格式.doc
- 《计算机汇编语言》课程教学资源(教案讲义)第三章 指令系统和寻址方式.doc
- 《计算机汇编语言》课程教学资源(教案讲义)第二章 微型计算机结构.doc
- 《计算机汇编语言》课程教学资源(教案讲义)第十章 汇编语言程序设计实例.doc
- 《计算机汇编语言》课程教学资源(教案讲义)第一章 汇编语言基础知识.doc
- 《Matlab系统分析与程序设计》课程教学资源(PPT课件讲稿)第九章 MATLAB环境下的仿真.ppt
- 《Matlab系统分析与程序设计》课程教学资源(PPT课件讲稿)第八章 MATLAB笔记本.ppt
- 《Matlab系统分析与程序设计》课程教学资源(PPT课件讲稿)第七章 MATLAB图形用户界面设计.ppt
- 《Matlab系统分析与程序设计》课程教学资源(PPT课件讲稿)第六章 MATLAB符号计算.ppt
- 《Matlab系统分析与程序设计》课程教学资源(PPT课件讲稿)第五章 MATLAB数值计算.ppt
- 《Matlab系统分析与程序设计》课程教学资源(PPT课件讲稿)第四章 MATLAB绘图.ppt
- 《Matlab系统分析与程序设计》课程教学资源(PPT课件讲稿)第三章 MATLAB程序设计.ppt
- 《Matlab系统分析与程序设计》课程教学资源(PPT课件讲稿)第二章 MATLAB数据.ppt
- 《Matlab系统分析与程序设计》课程教学资源(PPT课件讲稿)第一章 MATLAB概述.ppt
- 《C语言讲稿》课程教学资源(PPT课件)第十五章 实训.ppt
- 《C语言讲稿》课程教学资源(PPT课件)第十四章 数据文件的应用.ppt
- 《C语言讲稿》课程教学资源(PPT课件)第十三章 结构体的应用.ppt
- 《C语言讲稿》课程教学资源(PPT课件)第十二章 编译预处理.ppt
- 《C语言讲稿》课程教学资源(PPT课件)第十一章 用户标识符的作用域和存储类别.ppt
- 《计算机汇编语言》课程教学资源(教案讲义)第七章 高级汇编语言技术.doc
- 《计算机汇编语言》课程教学资源(教案讲义)第八章 输入/输出和中断程序设计.doc
- 《计算机汇编语言》课程教学资源(教案讲义)第九章 多模块程序设计与混合编程.doc
- 西北工业大学网络教育学院:《计算机系统结构》课程PPT讲义课件_序论.ppt
- 西北工业大学网络教育学院:《计算机系统结构》课程PPT讲义课件_总复习.ppt
- 西北工业大学网络教育学院:《计算机系统结构》课程PPT讲义课件_总复习及模拟试题.ppt
- 西北工业大学网络教育学院:《计算机系统结构》课程PPT讲义课件_第一章 计算机系统结构的基本.ppt
- 西北工业大学网络教育学院:《计算机系统结构》课程PPT讲义课件_第二章 数据表示与指令系统.ppt
- 西北工业大学网络教育学院:《计算机系统结构》课程PPT讲义课件_第三章 总线、中断与I.ppt
- 西北工业大学网络教育学院:《计算机系统结构》课程PPT讲义课件_第三章 习题处理.ppt
- 西北工业大学网络教育学院:《计算机系统结构》课程PPT讲义课件_第四章 存贮体系.ppt
- 西北工业大学网络教育学院:《计算机系统结构》课程PPT讲义课件_第四章 存贮体系续.ppt
- 西北工业大学:《计算机辅助设计》复习模拟题(一).ppt
- 西北工业大学:《计算机辅助设计》复习模拟题(二).ppt
- 西北工业大学:《计算机辅助设计》第一章 绪论.ppt
- 西北工业大学:《计算机辅助设计》第二章 基础命令.ppt
- 西北工业大学:《计算机辅助设计》第三章 绘图命令.ppt
- 西北工业大学:《计算机辅助设计》第四章 编辑修改命令.ppt
- 西北工业大学:《计算机辅助设计》第五章 设置命令.ppt
- 西北工业大学:《计算机辅助设计》第六章 尺寸标注.ppt