马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
(1)
MACRO、MEND及MEXIT MACRO伪操作标识宏定义的开始,MEND标识宏定义的结束。MERIT用于从宏中跳转出去。用MACRO和MEND定义的一段代码,成为宏定义体,这样在程序中就可通过宏名多次调用该代码段来完成相应的功能。 语法格式 MACRO ;宏定义开始 $lable jump ;宏的名称为jump,有2个参数a1和a2 … $lable.loop1 ;$lable.loopl为宏体的内部标号 … BGE $lable.loop1 $lable.loop2 ;$lable.loop2为宏体的内部标号 BL $a1 ;参数$a1为一个子程序的名称 BGT $lable.loop2 … ADR $a2 … MEND 在程序中调用该宏: exam jump sub,det ;调用宏jump,宏的标号为exam
;参数1为sub,参数2为det
程序被汇编后,宏展开的结果: … examloop1 ;用exam代替$lable构成标号
;examloop1
… examloop2 BL sub ;参数1的实际值为sub BGT examloop2 ADR det ;参数2的实际值为det 示例27 用宏伪操作完成测试-跳转操作举例 在ARM中完成测试-跳转操作需要2条指令,下面定义一条宏指令完成测试-跳转操作。 MACRO ;宏定义开始 $lable TestAndBranch$ds,$re,$aa ;宏的名称为TestAndBranch
;有3个参数
$lable CMP$re,#0 B$aa $ds MEND ;宏定义结束 在程序中调用该宏: test TestAndBranch nzero,R0,NE ;调用宏 程序被汇编后,宏展开的结果是: test CMP R0,#0 BNE nzero 凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网 |