ARM程序狀態(tài)寄存器
發(fā)布時間:2008/12/22 0:00:00 訪問次數(shù):1448
arm體系結(jié)構(gòu)包含1個當(dāng)前程序狀態(tài)寄存器(cpsr)和5個各份的程序狀態(tài)寄存器(spsrs)。使用msr和mrs指令來設(shè)置和讀取這些寄存器。
當(dāng)前程序狀態(tài)寄存器(cpsr),持有關(guān)于當(dāng)前處理器狀態(tài)的信息。其他5個各份的程序狀態(tài)寄存器(spsr),每個特權(quán)模式都有一個,持有完成在這個模式下的例外處理時處理器必須返回的關(guān)于狀態(tài)的信息。
spsr用來進行異常處理,其功能包括:
。1)保存alu中的當(dāng)前操作信息。
。2)控制允許和禁止中斷。
(3)設(shè)置處理器的運行模式。
程序狀態(tài)寄存器的每一位的安排如圖所示。
圖 程序狀態(tài)寄存器格式
1.條件碼標(biāo)志(condition code flags)
n、z、c、v均為條件碼標(biāo)志位。它們的內(nèi)容可被算術(shù)或邏輯運算的結(jié)果所改變,并且可以決定某條指令是否被執(zhí)行。
在arm狀態(tài)下,絕大多數(shù)的指令都是有條件執(zhí)行的;在thumb狀態(tài)下,僅有分支指令是有條件執(zhí)行的。條件碼標(biāo)志位的各位具體含義如表1所示。
表1 條件碼標(biāo)志位的具體含義
2.控制位
psr的低8位(包括i、f、t和m[4∶0])稱為控制位,當(dāng)發(fā)生異常時這些位可以被改變。如果處理器運行特權(quán)模式,那么這些位也可以由程序修改。
(1)中斷禁止位i、f。
·i=1,禁止irq中斷;
·f=1,禁止fiq中斷。
。2)t標(biāo)志位:該位反映處理器的運行狀態(tài)。
·對于arm體系結(jié)構(gòu)v5及以上版本的t系列處理器,當(dāng)該位為l時,程序運行于thumb狀態(tài),否則運行于arm狀態(tài)。
·對于arm體系結(jié)構(gòu)v5及以上版本的非t系列處理器,當(dāng)該位為1時,執(zhí)行下一條指令以引起位定義的指令異常;當(dāng)該位為0時,表示運行于arm狀態(tài)。
(3)運行模式位m[4∶0]:mo、m1、m2、m3、m4是模式位,這些位決定了處理器的運行模式。具體含義如表2所示。
表2 運行模式位m[4∶0]的具體含義
由表2可知,并不是所有的運行模式位的組合都是有效的,其他的組合結(jié)果會導(dǎo)致處理器進入一個不可恢復(fù)的狀態(tài)。
3.保留位
psr中的其余位為保留位,當(dāng)改變psr中的條件碼標(biāo)志位或者控制位時,保留位不要改變,在程序中也不要使用保留位來存儲數(shù)據(jù)。保留位將用于arm版本的擴展。
歡迎轉(zhuǎn)載,信息來源維庫電子市場網(wǎng)(www.dzsc.com)
arm體系結(jié)構(gòu)包含1個當(dāng)前程序狀態(tài)寄存器(cpsr)和5個各份的程序狀態(tài)寄存器(spsrs)。使用msr和mrs指令來設(shè)置和讀取這些寄存器。
當(dāng)前程序狀態(tài)寄存器(cpsr),持有關(guān)于當(dāng)前處理器狀態(tài)的信息。其他5個各份的程序狀態(tài)寄存器(spsr),每個特權(quán)模式都有一個,持有完成在這個模式下的例外處理時處理器必須返回的關(guān)于狀態(tài)的信息。
spsr用來進行異常處理,其功能包括:
。1)保存alu中的當(dāng)前操作信息。
。2)控制允許和禁止中斷。
。3)設(shè)置處理器的運行模式。
程序狀態(tài)寄存器的每一位的安排如圖所示。
圖 程序狀態(tài)寄存器格式
1.條件碼標(biāo)志(condition code flags)
n、z、c、v均為條件碼標(biāo)志位。它們的內(nèi)容可被算術(shù)或邏輯運算的結(jié)果所改變,并且可以決定某條指令是否被執(zhí)行。
在arm狀態(tài)下,絕大多數(shù)的指令都是有條件執(zhí)行的;在thumb狀態(tài)下,僅有分支指令是有條件執(zhí)行的。條件碼標(biāo)志位的各位具體含義如表1所示。
表1 條件碼標(biāo)志位的具體含義
2.控制位
psr的低8位(包括i、f、t和m[4∶0])稱為控制位,當(dāng)發(fā)生異常時這些位可以被改變。如果處理器運行特權(quán)模式,那么這些位也可以由程序修改。
。1)中斷禁止位i、f。
·i=1,禁止irq中斷;
·f=1,禁止fiq中斷。
(2)t標(biāo)志位:該位反映處理器的運行狀態(tài)。
·對于arm體系結(jié)構(gòu)v5及以上版本的t系列處理器,當(dāng)該位為l時,程序運行于thumb狀態(tài),否則運行于arm狀態(tài)。
·對于arm體系結(jié)構(gòu)v5及以上版本的非t系列處理器,當(dāng)該位為1時,執(zhí)行下一條指令以引起位定義的指令異常;當(dāng)該位為0時,表示運行于arm狀態(tài)。
。3)運行模式位m[4∶0]:mo、m1、m2、m3、m4是模式位,這些位決定了處理器的運行模式。具體含義如表2所示。
表2 運行模式位m[4∶0]的具體含義
由表2可知,并不是所有的運行模式位的組合都是有效的,其他的組合結(jié)果會導(dǎo)致處理器進入一個不可恢復(fù)的狀態(tài)。
3.保留位
psr中的其余位為保留位,當(dāng)改變psr中的條件碼標(biāo)志位或者控制位時,保留位不要改變,在程序中也不要使用保留位來存儲數(shù)據(jù)。保留位將用于arm版本的擴展。
歡迎轉(zhuǎn)載,信息來源維庫電子市場網(wǎng)(www.dzsc.com)
上一篇:ARM狀態(tài)下的寄存器
上一篇:ARM通用寄存器
熱門點擊
- ARM通用寄存器
- FIQ異常的描述
- Viterbi譯碼
- ARM程序狀態(tài)寄存器
- ARM時序
- ARM乘法指令
- Thumb狀態(tài)下的寄存器
- ARM異常的響應(yīng)及返回
- ARM狀態(tài)寄存器訪問指令
- 常用自動控制系統(tǒng)設(shè)計的案例要求和應(yīng)用對象
推薦技術(shù)資料
- DFRobot—玩的就是
- 如果說新車間的特點是“靈動”,F(xiàn)QPF12N60C那么... [詳細(xì)]
- AMOLED顯示驅(qū)動芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究