本文主要是介绍ARM GNU 汇编宏定义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在阅读u-boot1.1.6源码时遇到关于宏定义的问题,开始不太明白宏定义的具体的规则,现在算是明白过来了吧(^_^)
宏定义的定义格式:
.macro 宏名称 参数(多个之间用“,”隔开,也可以不带参数)
宏的实体部分
.endm
既然是宏,那么它和c语言里面的宏定义特点是一样的,比如:
宏在调用处的展开,就是用宏定义的实体部分去完全取代宏名称,并且用实际的参数替换宏定义处的形参
宏调用和子程序的调用之间的区别:
宏调用的所有地方,在编译后就已经全部展开,因此在可以直接在该处执行,而子程序还要跑到定义处去调用,这样,在调用次数多的时候,花的时间就多了。也可以这么理解,宏具有独立性,而子程序是共用的。宏有一个明显的缺点,就是宏调用多的代码编译后占内存空间要明显大得多。
关于汇编宏定义就讲这么多了。
这篇关于ARM GNU 汇编宏定义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!