新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM基礎(chǔ):ARM指令之MSR

ARM基礎(chǔ):ARM指令之MSR

作者: 時(shí)間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
/

原文地址:http://www.cnblogs.com/faraway/archive/2009/03/06/1404449.html
說明:ErrorA1450WDeprecatedformofPSRfieldspecifierused(use_cxsfforfuturecompatibility)。

本文引用地址:http://m.butianyuan.cn/article/201611/317566.htm

/


ADS2.2出現(xiàn)以上我錯(cuò)誤,我google出了結(jié)果,特記下。

我是在ARM指令練習(xí)的一個(gè)匯編程序中添加了“MSR”的練習(xí),是模仿“MRS”的:代碼如下:

;MSR指令(將通用寄存器的內(nèi)容傳送到CPSR或者SPSR?MSR CPSR,R0 ;傳送CPSR的內(nèi)容到R0MSR SPSR,R0 ;傳送SPSR的內(nèi)容到R1MSR CPSR_c,R0;

我搞不明白哪里出現(xiàn)了錯(cuò)誤,我在網(wǎng)上搜索這個(gè)錯(cuò)誤的時(shí)候找到了這樣(原文這里):

;MSR指令(將通用寄存器的內(nèi)容傳送到CPSR或者SPSR?MSR CPSR_cxsf,R0 ;傳送CPSR的內(nèi)容到R0MSR SPSR_cxsf,R0 ;傳送SPSR的內(nèi)容到R1MSR CPSR_c,R0;

就可以解決了,不過我在想我是按照老師課件上講的,怎么會(huì)出錯(cuò),看了"ARM指令集"后我明白了,用MSR指令對(duì)PSR進(jìn)行操作的時(shí)候,為了設(shè)定操作的范圍,避免對(duì)某些位的操作而影響其他部分而定義了這幾個(gè)FLAG。這個(gè)是不可商量的,一定要這樣做的,不然就會(huì)報(bào)錯(cuò)。“ARM指令集”上講的是用cpsr_all。為了印象更深一點(diǎn)我決定再找找準(zhǔn)確的答案。

在網(wǎng)上找到也這種說法(原文這里),說是cpsr_all也是老的寫法,現(xiàn)在去寫這樣的,還是會(huì)有警告的。最新的寫法是這樣的cpsr_cxsf。



關(guān)鍵詞: ARM基礎(chǔ)ARM指令MS

評(píng)論


技術(shù)專區(qū)

關(guān)閉