宏汇编
宏定义
1 | 宏名 macro [形参表] |
宏调用
1 | 宏名 [实参表] |
宏展开
宏展开——在汇编时,用宏定义体的代码序列替代宏指令的过程。
举例:
1 | ;宏定义 |
宏操作符
连接操作符&
含义
宏展开时,对应形参的实参就与它前后的符号连接在一起
举例:
1 | 【例1】连接符&的使用: |
表达式操作符%
含义
告诉宏汇编程序获取表达式的值,而不是获取表达式文本本身
注意:这个操作符一般是出现在宏调用中,不允许出现在形参的前面。
举例:
1 | ;宏定义 |
文本操作符<>
含义
把一个完整的实参括起来,作为一个单一的实参
注意:文本操作符还可以用来处理某些特殊字符:如“;”和“&”。
例:<;>就表示一个分号“;”的实参,而不是注释符。
举例:
1 | 例3 |
字符操作符!
含义
相当于C语言中转义字符
宏注解符;;
含义
说明后面文字是注解,仅出现在宏定义中
LOCAL伪指令(重要)
含义
在宏定义中使用变量名和标号,为了避免在宏展开时产生多个相同的变量名或标号。
宏展开时,LOCAL伪指令指定的变量、标号自动生成格式为“??ⅩⅩⅩⅩ”的符号,其中后四位顺序使用0000~FFFF的十六进制数字。
举例:
1 | 【例5】用连续相加的办法实现无符号数乘法运算,编制宏定义MULTIP |
重复汇编
定义
重复汇编常用在宏定义体中,也可以在一般汇编语句中使用
重复汇编伪指令有三个:
REPEAT——按参数值重复
FOR——按参数个数重复
FORC——按参数的字符个数重复
最后,用ENDM结束
按参数值重复
定义
1 | REPEAT 重复次数 |
举例:
1 | ; 宏定义 |
按参数个数重复
定义
1 | FOR 形参,〈实参表〉 |
举例:
1 | ; 宏定义 |
按参数字符个数重复
定义
1 | FORC 形参, 字符串 |
举例:
1 | ; 宏定义 |
条件汇编
定义
1 | IFxx 表达式 ;满足,汇编分支语句体1 |
举例:
1 | pdata macro num |