ARM基礎:ARM指令之MSR
原文地址:http://www.cnblogs.com/faraway/archive/2009/03/06/1404449.html
說(shuō)明:ErrorA1450WDeprecatedformofPSRfieldspecifierused(use_cxsfforfuturecompatibility)。
/
ADS2.2出現以上我錯誤,我google出了結果,特記下。
我是在ARM指令練習的一個(gè)匯編程序中添加了“MSR”的練習,是模仿“MRS”的:代碼如下:
;MSR指令(將通用寄存器的內容傳送到CPSR或者SPSR?MSR CPSR,R0 ;傳送CPSR的內容到R0MSR SPSR,R0 ;傳送SPSR的內容到R1MSR CPSR_c,R0;
我搞不明白哪里出現了錯誤,我在網(wǎng)上搜索這個(gè)錯誤的時(shí)候找到了這樣(原文這里):
;MSR指令(將通用寄存器的內容傳送到CPSR或者SPSR?MSR CPSR_cxsf,R0 ;傳送CPSR的內容到R0MSR SPSR_cxsf,R0 ;傳送SPSR的內容到R1MSR CPSR_c,R0;
就可以解決了,不過(guò)我在想我是按照老師課件上講的,怎么會(huì )出錯,看了"ARM指令集"后我明白了,用MSR指令對PSR進(jìn)行操作的時(shí)候,為了設定操作的范圍,避免對某些位的操作而影響其他部分而定義了這幾個(gè)FLAG。這個(gè)是不可商量的,一定要這樣做的,不然就會(huì )報錯。“ARM指令集”上講的是用cpsr_all。為了印象更深一點(diǎn)我決定再找找準確的答案。
在網(wǎng)上找到也這種說(shuō)法(原文這里),說(shuō)是cpsr_all也是老的寫(xiě)法,現在去寫(xiě)這樣的,還是會(huì )有警告的。最新的寫(xiě)法是這樣的cpsr_cxsf。
評論