2015-12-09 78 views
0

我將一些繼承代碼移植到我當前的平臺。當我編譯它時,它會報告關於arm彙編程序代碼的一些錯誤。如何將大拇指條件指令放入IT塊

消息顯示:

| {standard input}:7236: Error: thumb conditional instruction should be in IT block -- `movne r0,r2' 
| {standard input}:7237: Error: thumb conditional instruction should be in IT block -- `biceq r0,r0,#0xff' 
| {standard input}:7238: Error: thumb conditional instruction should be in IT block -- `biceq r0,r0,#0xf00' 

我是一個完全新手到彙編手臂,所以我的問題是,如何讓下面的代碼爲IT塊。正如編譯器所要求的一樣。

"movne r0, r2;\n" 
"biceq r0, r0, #0xff;\n" 
"biceq r0, r0, #0xf00;" 

由於

回答

1

的 「IT塊」 是指最多4個指令由單個IT ("If-Then") instruction爲條件。雖然你有兩種不同的條件,但它們是邏輯對立的,所以仍然可以由一個IT覆蓋,這要歸功於額外的「Else」編碼。隨着一個ne有條件跟着兩個eq條件語句,相應的指令與將繼續他們:

ITEE ne 
+0

感謝您的快速反應,這對我的作品。 – Alan