1 / 45
文档名称:

汇编语言 第章(强烈推荐).ppt

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

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

分享

预览

汇编语言 第章(强烈推荐).ppt

上传人:yzhluyin1 2015/11/3 文件大小:0 KB

下载得到文件列表

汇编语言 第章(强烈推荐).ppt

相关文档

文档介绍

文档介绍:第5章子程序设计
作业:
实验教程
Page 63 3、5、8
11
子程序设计基本概念
把功能相对独立的程序段单独编写和调试,作为一个相对独立的模块供程序调用,就形成子程序
子程序可以实现源程序的模块化,可简化源程序结构,可以提高编程效率
子程序设计要利用过程定义伪指令
参数传递是子程序设计的重点和难点
子程序可以嵌套;
一定条件下,还可以递归
子程序的调用与返回
子程序是完成特定功能的一段程序
当主程序(调用程序)需要执行这个功能时,采用CALL调用指令转移到该子程序的起始处执行
当运行完子程序功能后,采用RET返回指令回到主程序继续执行
演示
主程序与子程序
CALL label
主程序
RET
子程序
回到CALL指令后的指令处——返回地址
子程序定义伪指令
过程名 proc [near|far]
...
过程名 endp
过程名(子程序名)为符合语法的标识符
NEAR属性(段内近调用)的过程只能被相同代码段的其他程序调用
FAR属性(段间远调用)的过程可以被相同或不同代码段的程序调用
对简化段定义格式,在微型、小型和紧凑存储模式下,过程的缺省属性为near;
在中型、大型和巨型存储模式下,过程的缺省属性为far
对完整段定义格式,过程的缺省属性为near
用户可以在过程定义时用near或far改变缺省属性
子程序的常见格式
subname proc ;具有缺省属性的subname过程
push ax ;保护寄存器:顺序压入堆栈
push bx ;ax/bx/cx仅是示例
push cx
…;过程体
pop cx ;恢复寄存器:逆序弹出堆栈
pop bx
pop ax
ret ;过程返回
subname endp ;过程结束
第5章
CS
IP
CS
IP
AX
BX
CX
CS
IP
SP
SP
SP
SP
SP
CALL之前
CALL之后
现场保护以后
现场恢复以后
RET以后
程序执行过程中,堆栈变化示意图
;子程序功能:实现光标回车换行
dpcrlf proc far ;过程开始
push ax ;保护寄存器AX和DX
push dx
mov dl,0dh ;显示“回车”
mov ah,2
int 21h
mov dl,0ah ;显示“换行”
mov ah,2
int 21h
pop dx ;恢复寄存器DX和AX
pop ax
ret ;子程序返回
dpcrlf endp ;过程结束
无参数传递的子程序