1、汇编宏伪指令介绍
.macro macname macargs
···
.endm
(1)“.macro"和”.endm"表示宏定义的开始和结束;
(2) “.macro"后面接着宏定义的名字,然后是参数,参数后面的宏定义的实现;
(3)在宏定义中使用参数,需要添加前缀”";
2、汇编宏举例分析
//实现两个数相加并把结果保存到a1寄存器的宏
.macro add_data p1=0 p2:req
mv a5, \p1
mv a6, \p2
add a1, a5, a6
.endm
关键字 | 含义 |
---|---|
p1=0 | 第一个参数用“=0”修饰,表示该参数在使用宏时可以省略,如果省略则默认值是0 |
p2:req | 第二个参数用“:req”修饰,表示 在调用宏时必须传递一个值,不能省略,否则编译会报错 |
3、宏的特殊字符
//在宏定义中想把两个参数作为字符拼接到一起
.macro opcode base length
\base\().\length
.endmopcode store.l
//等同于下面
store.l
需要用"\()“来告诉汇编器参数什么时候结束,不能直接写成”\base.\length";