3
宏定义可以带参数: 例: SHIFT1 MACRO X,Y MOV CL, X SAL Y,CL ENDM 调用时: SHIFT1 2, BX;BX算术左移2位. 例: SHIFT2 MACRO X,Y,Z MOV CL, X S&Z Y,CL ENDM 调用时: SHIFT2 2, SI,HR;SI逻辑右移2位源自*作业6:P124:题3-2,
22
8.数据返回C程序时,类型不同,使用的寄 存器不同,见表3-6. 例: CHAR 型: AL LONG 型: DX,AX (二) 举例 例3-16 气泡排序用汇编;数组元素在C程序 中输入,基本程序结构如下:
17
;exm3-16.c #include “stdio.h” extren void sort(int*,int); Main() { int aa[50]; … sort(aa,n) … }
1
宏调用:用宏名(也称宏指令)。 宏扩展:汇编时,将宏指令替换成宏体。 例:源程序 汇编时 … … SHIFT MOV CL, 4 … SAL AL, CL SHIFT … MOV CA, 4 SAL AL, CL 注:与子程序一样,可以简化源程序书写, 但有区别.
2
源程序:主程序 子程序 … SHIFT PROC CALL SHIFT MOV CL, 4 … SAL AL, CL CALL SHIFT RET 宏定义与子程序的区别: 1.子程序在运行时起作用;而宏定义在汇 编时起作用. 2.相同程序,子程序省目标码,而宏定义执 行速度快.
PUBLIC 名字 [,…] 功能:定义可以被其它模块引用的全局名字. 二、外部过程的调用 主模块: EXTRN SUB-PROC:FAR CODE SEGMENT MAIN-PROC PROC FAR … CALL SUB-PROC … RET MAIN-PROC ENDP