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执行的 指令。 ② 汇编结果:宏命令伪指令汇编后被展开。 ③ 执行速度:宏命令执行速度较快(因无调用转移) ④ 占用内存:宏指令简化了源程序,但不能简化目 标程序,并不节省内存单元。使用过程可以节省代 码占用的内存空间