新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 詳解ARM處理寄存器與用戶模式

        詳解ARM處理寄存器與用戶模式

        作者: 時(shí)間:2018-09-14 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/201809/389174.htm

        程序狀態(tài)寄存器

        寄存器R16用作程序狀態(tài)寄存器CPSR(Current Program Status Register,當(dāng)前程序狀態(tài)寄存器)。在所有處理器模式下都可以訪問CPSR。CPSR包含條件碼標(biāo)志、中斷禁止位、當(dāng)前處理器模式以及其他狀態(tài)和控制信息。每種異常模式都有一個(gè)程序狀態(tài)保存寄存器SPSR(Saved Program Status Register)。當(dāng)異常出現(xiàn)SPSR用于保留CPSR的狀態(tài)。

        CPSR和SPSR的格式如下:

        (1)條件碼標(biāo)志

        N、Z、C、V(Negative、Zero、Carry、oVerflow)均為條件碼標(biāo)志位(Condition Code Flags),它們的內(nèi)容可被算術(shù)或邏輯運(yùn)算的結(jié)果所改變,并且可以決定某條指令是否被執(zhí)行。CPSR中的條件碼標(biāo)志可由大多數(shù)指令檢測以決定指令是否執(zhí)行。在狀態(tài)下,絕大多數(shù)的指令都是有條件執(zhí)行的。在Thumb狀態(tài)下,僅有分支指令是有條件執(zhí)行的。通常條件碼標(biāo)志通過執(zhí)行比較指令(CMN、CMP、TEQ、TST)、一些算術(shù)運(yùn)算、邏輯運(yùn)算和傳送指令進(jìn)行修改。

        條件碼標(biāo)志的通常含義如下:

        N:如果結(jié)果是帶符號二進(jìn)制補(bǔ)碼,那么,若結(jié)果為負(fù)數(shù),則N=1;若結(jié)果為正數(shù)或0,則N=0。

        Z:若指令的結(jié)果為0,則置1(通常表示比較的結(jié)果為“相等”),否則置0。

        C:可用如下4種方法之一設(shè)置:

        一-加法(包括比較指令CMN)。若加法產(chǎn)生進(jìn)位(即無符號溢出),則C置1;否則置0。

        一-減法(包括比較指令CMP)。若減法產(chǎn)生借位(即無符號溢出),則C置0;否則置1。

        一-對于結(jié)合移位操作的非加法/減法指令,C置為移出值的最后1位。

        一-對于其他非加法/減法指令,C通常不改變。

        V:可用如下兩種方法設(shè)置,即

        一-對于加法或減法指令,當(dāng)發(fā)生帶符號溢出時(shí),V置1,認(rèn)為操作數(shù)和結(jié)果是補(bǔ)碼形式的帶符號整數(shù)。

        一-對于非加法/減法指令,V通常不改變。

        (3)控制位

        程序狀態(tài)寄存器PSR(Program Status Register)的最低8位I、F、T和M[4:0]用作控制位。當(dāng)異常出現(xiàn)時(shí)改變控制位。處理器在特權(quán)模式下時(shí)也可由軟件改變。

        a.中斷禁止位

        I:置1,則禁止IRQ中斷;

        F:置1,則禁止FIQ中斷。

        b.T位

        T=0 指示執(zhí)行;

        T=1 指示Thumb執(zhí)行。

        c.模式控制位

        M4、M3、M2、Ml和M0(M[4:0])是模式位,決定處理器的工作模式,如表所列。

        M[4:0]工作模式可訪問的寄存器

        10000PC,CPSR,R14~R0

        10001FIQ模式PC,R7~R0,CPSR, SPSR_fiq,R14_fiq~R8_fiq

        10010IRQ模式PC,R12~R0,CPSR, SPSR_irq,R14_irq,R13_irq

        10011管理模式PC,R12~R0, CPSR, SPSR_svc,R14_svc,R13_svc

        10111中止模式PC,R12~R0, CPSR, SPSR_abt,R14_abt,R13_abt

        11011未定義模式PC,R12~R0, CPSR, SPSR_und,R14_und,R13_und

        11111系統(tǒng)模式PC,R14~R0,CPSR( v4及以上版本)

        并非所有的模式位組合都能定義一種有效的處理器模式。其他組合的結(jié)果不可預(yù)知。

        (4)其他位

        程序狀態(tài)寄存器的其他位保留,用做以后的擴(kuò)展。


        上一頁 1 2 下一頁

        關(guān)鍵詞: ARM 處理寄存器 用戶模式

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 德钦县| 漳平市| 固始县| 台安县| 金溪县| 中方县| 邹平县| 田阳县| 湘乡市| 南靖县| 玉田县| 乌鲁木齐市| 张家口市| 蛟河市| 罗定市| 铜山县| 石泉县| 文成县| 通城县| 靖州| 安平县| 福建省| 永定县| 东兴市| 阳西县| 富平县| 科技| 图木舒克市| 聂拉木县| 香港 | 阳高县| 渭南市| 凌源市| 准格尔旗| 常山县| 汤原县| 喀喇沁旗| 邮箱| 东明县| 新绛县| 乡城县|