4.2.4过程定义伪指令PROC、ENDP 过程就是子程序 过程可以被其它程序所调 用(用CALL指令),过程的最后一条指令一般是返回 指令(RET)。 过程定义伪指令的格式为 过程名PR0C[类型] RET 过程名ENDP 注意:PR0C和END必须成对出现
1 4.2.4 过程定义伪指令PROC、ENDP 过程就是子程序。一个过程可以被其它程序所调 用(用CALL指令),过程的最后一条指令一般是返回 指令(RET)。 过程定义伪指令的格式为 PROC [类型] … … RET ENDP 注意:PROC和ENDP必须成对出现
过程的类型有两种: NEAR—(默认类型)表示段内调用 FAR→表示段间调用 调用一个过程的格式为 CALL〈过程名
2 过程的类型有两种: NEAR——(默认类型)表示段内调用 FAR——表示段间调用 调用一个过程的格式为: CALL
4.2.5宏定义伪指令 如果需要多次使用同一个程序段,可以 将这个程序段定义为一个”宏指令”, 然后在需要时,可简单地用宏指令名来 代替这个程序段 指令的格式为 〈宏指令名 MACRO L形参表7 宏定义体 ENDM
3 4.2.5 宏定义伪指令 如果需要多次使用同一个程序段,可以 将这个程序段定义为一个”宏指令”, 然后在需要时,可简单地用宏指令名来 代替这个程序段。 指令的格式为: MACRO [形参表] ENDM
例:两个数之和的宏定义和宏调用 宏定义为: DADD MACRO X,Y, Z MOV AX, X ADD AX, Y MOV Z, AX ENDM Ⅹ、Y、Z是形式参数。调用宏DAD时可写为: DADD DATA1, DATA2, SUM DATA,DATA2,SUM是实际参数,由它们替 换定义中的X、Y、Z
4 例:两个数之和的宏定义和宏调用。 宏定义为: DADD MACRO X,Y,Z MOV AX,X ADD AX,Y MOV Z,AX ENDM X、Y、Z是形式参数。调用宏DADD时可写为: DADD DATA1,DATA2,SUM DATA1,DATA2,SUM是实际参数,由它们替 换定义中的X、Y、Z
宏调用与过程(子程序)调用都是一次定义,多次调 用。它们之间的差别是: ①执行形式:宏命令伪指令由宏汇编程序在汇编过 理中进行处理,而CALL、RET则是由CPU执行的 指令 ②汇编结果:宏命令伪指令汇编后被展开。 ③执行速度:宏命令执行速度较快(因无调用转移 ④占用内存:宏指令简化了源程序,但不能简化目 标程序,并不节省内存单元。使用过程可以节省代 码占用的内存空间
5 宏调用与过程(子程序)调用都是一次定义,多次调 用。它们之间的差别是: ① 执行形式:宏命令伪指令由宏汇编程序在汇编过 理中进行处理,而CALL、RET则是由CPU执行的 指令。 ② 汇编结果:宏命令伪指令汇编后被展开。 ③ 执行速度:宏命令执行速度较快(因无调用转移) ④ 占用内存:宏指令简化了源程序,但不能简化目 标程序,并不节省内存单元。使用过程可以节省代 码占用的内存空间
■宏展开:汇编程序会把宏调用按宏定义展开。 例如:宏定义为 Display MACRo string LEA DX, string MOV AH, 9 INT 21H ENDM 程序中宏调用: DISPLAY ERROR MESSAGE DISPLAY EX厅 T MESSAGE 汇编后的结果:(带有+号的指令为宏展开后的结果 LEA DX, ERROR MESSAGE MOV AH, 9 +∥T21H LEA DX, EXT MESSAGE MOV AH, 9 NT 21H
6 宏展开:汇编程序会把宏调用按宏定义展开。 例如:宏定义为: Display MACRO string LEA DX,string MOV AH,9 INT 21H ENDM 程序中宏调用: …… DISPLAY ERROR_MESSAGE DISPLAY EXIT_MESSAGE …… 汇编后的结果:(带有+号的指令为宏展开后的结果) …… + LEA DX,ERROR_MESSAGE + MOV AH,9 + INT 21H + LEA DX,EXIT_MESSAGE + MOV AH,9 + INT 21H ……
4.2.6汇编结束伪指令END 汇编语言源程序的最后,要加汇编结東 伪指令END,以使汇编程序结束汇编 格式:END[表达式] END后跟的表达式通常就是程序第一条 指令的标号,指示程序的启动地址(要 执行的第一条指令的地址)
7 4.2.6 汇编结束伪指令END 汇编语言源程序的最后,要加汇编结束 伪指令END,以使汇编程序结束汇编。 格式: END [表达式] END后跟的表达式通常就是程序第一条 指令的标号,指示程序的启动地址(要 执行的第一条指令的地址)
汇编语言的一个实例: EⅩ AMASM
8 汇编语言的一个实例: EXAM.ASM
43DOS系统功能调用介绍 系统功能调用一—由0S提供的一组实现特殊功能 的子程序供程序员在程序中调用,以减轻编程工 作量。 >系统功能调用有两种,一种称为DOs功能调用 另一种称为B|OS功能调用。 用户程序在调用这些系统服务程序时,不是用 CALL命令,而是采用软中断指令NTn来实现。 在DOS系统中,功能调用都是用软中断指令NT 21H来实现的
9 4.3 DOS系统功能调用介绍 ➢ 系统功能调用——由OS提供的一组实现特殊功能 的子程序供程序员在程序中调用,以减轻编程工 作量。 ➢ 系统功能调用有两种,一种称为DOS功能调用, 另一种称为BIOS功能调用。 ➢ 用户程序在调用这些系统服务程序时,不是用 CALL命令,而是采用软中断指令INT n来实现。 ➢ 在DOS系统中,功能调用都是用软中断指令INT 21H来实现的
INT21H功能大致可以分为四个方面: 设备管理、目录管理、文件管理和其它。 参见P411页附录C3 D0S系统功能调用的使用方法如下: ①AH←功能号 ②设置该功能所要求的其他入口参数; ③执行INT2H指令 ④分析出口参数。 以下介绍INT21H的几个最常用的功能
10 INT 2lH功能大致可以分为四个方面: 设备管理、目录管理、文件管理和其它。 参见P411页附录C.3 D0S系统功能调用的使用方法如下: ① AH←功能号; ② 设置该功能所要求的其他入口参数; ③ 执行INT 21H指令; ④ 分析出口参数。 以下介绍INT 21H的几个最常用的功能