1 / 19
文档名称:

第章 子程序设计方法(强烈推荐).ppt

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

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

分享

预览

第章 子程序设计方法(强烈推荐).ppt

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

下载得到文件列表

第章 子程序设计方法(强烈推荐).ppt

相关文档

文档介绍

文档介绍:第8章子程序设计
子程序的概念
子程序的定义
子程序设计方法
子程序应用举例
子程序的嵌套与递归调用
返回本章首页
子程序的概念
在程序设计中,我们会发现一些多次无规律重复的程序段或语句序列。解决此类问题一个行之有效的方法就是将它们设计成可供反复调用的独立的子程序结构,以便在需要时调用。在汇编语言中,子程序又称过程。
调用子程序的程序称为主调程序或主程序。
返回本节
子程序的定义
子程序的定义是由过程定义伪指令PROC和ENDP来完成的。其格式如下:
过程名 PROC [NEAR/FAR]

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



例如:若子程序PROG中改变了寄存器AX,BX,CX,DX的值,则可采用如下方法保护和恢复现场。
PROG PROC
PUSH AX
PUSH BX
PUSH CX ;保护现场
PUSH DX


POP DX
POP CX
POP BX ;恢复现场
POP AX
RET ;返回断点处
PROC ENDP

(1)寄存器法
(2)约定单元法
(3)堆栈法
返回本节
子程序应用举例
【】将一个给定的二进制数按位转换成相应的ASCII码字符串,送到指定的存储单元并显示。如二进制数10010011转换成字符串为‘10010011’。要求将转换过程写成子程序,且子程序应具有较好的通用性,而必须能实现对8倍和16倍二进制数的转换。
入口参数:DX存放待转换的二进制数
CX存放待转换数的位数(8位或16位)
DI存放ASCII码首地址
出口参数:转换后的字符串存放在以DI作指针的字节存贮区中
程序如下:
DATA SEGMENT
NUM8 DB 93H
NUM16 DW 0ABCDH
ASCBUF DB 20 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE, SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV DX,0
MOV DL,NUM8 ;转换二进制数送DX
MOV CX,8 ;置位数8
LEA DI,ASCBUF ;字符串首址→DI
CALL BTASC ;调用子程序BTASC
MOV [DI],BYTE PTR 0DH
MOV [DI+1],BYTE PTR 0AH