新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 協(xié)處理器及其他指令之:狀態(tài)寄存器訪問指令

協(xié)處理器及其他指令之:狀態(tài)寄存器訪問指令

作者: 時間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

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

4.指令的使用

詳見MRS指令。

5.指令舉例

(1)使用“讀-修改-寫”模式更新CPSR寄存器。

MRSr0,CPSR ;讀CPSR寄存器的值

BICr0,r0,#0xf0000000 ;清除N、Z、C、V位

MSRCPSR_f,r0 ;更新CPSR中的標(biāo)志位

注意

因為PSR狀態(tài)寄存器中存在目前沒有定義的保留位,所以在使用時,最好加上“_fsxc”后綴,如上例中的“CPSR_f”。這樣做的目的是使指令只修改程序狀態(tài)寄存器的某個域,防止程序向高版本指令集移植時發(fā)生意外。

(2)禁止IRQ中斷。

MRSr0,CPSR;讀CPSR狀態(tài)寄存器

ORRr0,r0,#0x80;設(shè)置IRQ中斷禁止位

MSRCPSR_c,r0;更新CPSR狀態(tài)寄存器

(3)堆棧初始化。

INITSTACK

MOVr0,LR;保存返回地址

;設(shè)置管理模式堆棧

MSRCPSR_c,#0xd3;

LDRSP,StackSvc;

;設(shè)置中斷模式堆棧

MSRCPSR_c,#0xd2;

LDRSP,StackIrq;


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

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

關(guān)閉