2014-07-10 32 views
1
.macro add_sh   rd, rn, rm, sh:vararg 
A  add    \rd, \rn, \rm, \sh 
T  mov    \rm, \rm, \sh 
T  add    \rd, \rn, \rm 
.endm 

這個宏函數中的A,T,T是什麼?這個宏函數中的A,T,T是什麼?

有什麼需要使用這些?他們究竟意味着什麼?

我希望有人能幫我解決這個問題。

+0

什麼CPU系列和什麼彙編器?請適當標記。 –

回答

1

我猜想,這是ARM彙編代碼和AT宏用來選擇取決於您是否正在構建(A)RM代碼或(T)humb代碼組裝哪些指令:

.macro add_sh   rd, rn, rm, sh:vararg 
A  add    \rd, \rn, \rm, \sh   ;; ARM - just one instruction 
T  mov    \rm, \rm, \sh    ;; Thumb - these two instructions 
T  add    \rd, \rn, \rm    ;;   ... 
.endm 
+1

我想你可能是對的。這是我以前從未見過的語法。在ARM UAL中,您應該只能使用'add rd,rn,op2'格式,並且應該適當地爲ARM或Thumb進行編譯(儘管它可能會爲Thumb生成兩條指令,快速參考不會將其視爲在Thumb中不可用,但它確實表示它可能在Thumb-2中爲32位寬。 – rjp