资源描述:
《过程定义伪指令PR》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.2.4过程定义伪指令PROC、ENDP过程就是子程序。一个过程可以被其它程序所调用(用CALL指令),过程的最后一条指令一般是返回指令(RET)。过程定义伪指令的格式为<过程名>PROC[类型]……RET<过程名>ENDP注意:PROC和ENDP必须成对出现。1过程的类型有两种:NEAR——(默认类型)表示段内调用FAR——表示段间调用调用一个过程的格式为:CALL<过程名>24.2.5宏定义伪指令如果需要多次使用同一个程序段,可以将这个程序段定义为一个”宏指令”,然后在需要时,可简单地用宏指令名
2、来代替这个程序段。指令的格式为:<宏指令名>MACRO[形参表]<宏定义体>ENDM3例:两个数之和的宏定义和宏调用。宏定义为:DADDMACROX,Y,ZMOVAX,XADDAX,YMOVZ,AXENDMX、Y、Z是形式参数。调用宏DADD时可写为:DADDDATA1,DATA2,SUMDATA1,DATA2,SUM是实际参数,由它们替换定义中的X、Y、Z。4宏调用与过程(子程序)调用都是一次定义,多次调用。它们之间的差别是:①执行形式:宏命令伪指令由宏汇编程序在汇编过理中进行处理,而CALL、RE
3、T则是由CPU执行的指令。②汇编结果:宏命令伪指令汇编后被展开。③执行速度:宏命令执行速度较快(因无调用转移)④占用内存:宏指令简化了源程序,但不能简化目标程序,并不节省内存单元。使用过程可以节省代码占用的内存空间。5宏展开:汇编程序会把宏调用按宏定义展开。例如:宏定义为:DisplayMACROstringLEADX,stringMOVAH,9INT21HENDM程序中宏调用:……DISPLAYERROR_MESSAGEDISPLAYEXIT_MESSAGE……汇编后的结果:(带有+号的指令为宏展开
4、后的结果)……+LEADX,ERROR_MESSAGE+MOVAH,9+INT21H+LEADX,EXIT_MESSAGE+MOVAH,9+INT21H……64.2.6汇编结束伪指令END汇编语言源程序的最后,要加汇编结束伪指令END,以使汇编程序结束汇编。格式:END[表达式]END后跟的表达式通常就是程序第一条指令的标号,指示程序的启动地址(要执行的第一条指令的地址)。7汇编语言的一个实例:EXAM.ASM84.3DOS系统功能调用介绍系统功能调用——由OS提供的一组实现特殊功能的子程序供程序员在
5、程序中调用,以减轻编程工作量。系统功能调用有两种,一种称为DOS功能调用,另一种称为BIOS功能调用。用户程序在调用这些系统服务程序时,不是用CALL命令,而是采用软中断指令INTn来实现。在DOS系统中,功能调用都是用软中断指令INT21H来实现的。9INT2lH功能大致可以分为四个方面:设备管理、目录管理、文件管理和其它。参见P411页附录C.3D0S系统功能调用的使用方法如下:①AH←功能号;②设置该功能所要求的其他入口参数;③执行INT21H指令;分析出口参数。以下介绍INT21H的几个最常用
6、的功能。10关于数据输入和输出我们这里只讨论键盘输入和显示输出,调用系统功能需要提供入口参数及所调用的功能号,调用结束返回结果。1.DOS键盘功能调用(1)从键盘输入一个字符(功能号=1)MOVAH,1INT21H11例:程序中有时需要用户对提示做出应答。GET_KEY:MOVAH,1;等待键入字符INT21H;结果在AL中CMPAL,’Y’;是’Y’?JZYES;是,转YESCMPAL,’N’;是’N’?JZNO;是,转NOJMPGET_KEY;否则继续等待输入YES:……NO
7、:…12(2)输入字符串(功能号=0AH)此功能调用从键盘输入一串字符并把它存入用户指定的缓冲区中。MOVAH,0AHLEADX,<字符串缓冲区首地址>INT21H(预留的N1个字节的存储单元)0DHN2N1N1:缓冲区长度(最大键入字符数)N2:实际键入的字符数(不包括回车符)用户定义的输入字符串的缓冲区格式13若用户键入的字符数(包括回车)≥定义的N1,本功能调用将不再接收新的键入,且光标不再向右移动。例:设在数据段定义键盘缓冲区如下:STR1DB10,?,10DUP(?)调用DOS功能的0AH号
8、功能的程序段为:LEADX,STR1MOVAH,0AHINT21H此程序段最多从键盘接收10个按键(包括回车)。142.DOS显示功能调用(1)在显示器上显示一个字符(功能号=2)MOVAH,2MOVDL,<要显示的字符>INT21H例:在显示器上显示一个字符‘A’MOVAH,2MOVDL,’A’;或MOVDL,41HINT21H15MOVAH,9LEADX,<字符串>INT21H注意:被显示的字符串必须以’$’结束。(2)显示字符串(功能号=9)16例