下面看下此匯編偽指令的用法 (ARM GNU)-----自己翻譯的不明確的看英文原文
指令:.MACRO/.ENDM
語法:
宏名稱 .MACRO [形式參數]
........
宏定義語句
........
.ENDM
描述:
用.MACRO指令你可以定義一個宏,可以把需要重復執行的一段代碼,或者是一組指令縮寫成一個宏,在
程序調用的時候就可以直接去調用這個宏而使代碼更加簡潔清晰,此宏由以下3部分構成:
1. 頭: 在這里可以指定這個宏的名稱,別且定義形式參數
2. 體: 這里包含的是當這個宏被調用時所需要執行的指令或者語句。
3. 尾: 這里用.ENDM標識着這個宏的結束。
PS:形式參數只是一個標識符,他會在宏展開或者宏調用時被逐個展開,形參的定義也必須按照全局變量定義的
規則,形參不能為(%)。
例子:
SWAP_REG .MACRO REG1,REG2 ; swap registers
XCH A, REG1
XCH A, REG2
XCH A, REG1
.ENDM
看redboot的啟動代碼時,發現了很多地方使用了.MACRO這種宏定義,覺得類似C++里面的內聯函數(C語言的宏定義成函數的對於新人來說可能不常用)。
http://blog.sina.com.cn/s/blog_727800bb0100qhnd.html