新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM中關于CPSR_cxsf

        ARM中關于CPSR_cxsf

        作者: 時間:2016-11-11 來源:網絡 收藏
        msr cpsr_cxsf,r1;這里的cxsf表示從低到高分別占用的4個8bit的數據域

        指令中有時還有出現cpsr_cf, cpsr_all, cpsr_c等,這里:

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

        c 指CPSR中的control field ( PSR[7:0])

        f 指flag field (PSR[31:24])

        x 指extend field (PSR[15:8])

        s 指status field ( PSR[23:16])

        其中cpsr的位表示為:

        31 30 29 28---76-43210

        NZCVIFM4M3M2M1M0

        000 00User26 模式

        000 01FIQ26 模式

        000 10IRQ26 模式

        000 11SVC26 模式

        10000User 模式

        10001FIQ 模式

        10010IRQ 模式

        10011SVC 模式

        10111ABT 模式

        1101 1UND 模式

        深入分析:

        對于MSR(寄存器到狀態寄存器)的指令,

        MSR CPSR,r0

        MSR CPSR_all,r0

        MSR CPSR_flg,r0

        都是已經過時的表示方法。

        對于MRS(狀態寄存器到寄存器)的指令,

        MRS R0,CPSR等同于MRS R0, CPSR_cxsf

        MRS R0,CPSR_all 會有waring

        MRS R0,CPSR_flg會有錯誤

        在ADS中使用c,f,x,s表示cpsr的各個部分是推薦的。從指令來說:

        MSR CPSR_f,r0機器碼為0xe128f000

        MSR CPSR_c,r0機器碼為0xe121f000

        MSR CPSR_x,r0機器碼為0xe122f000

        MSR CPSR_s,r0機器碼為0xe124f000

        可見機器碼中用bit[29:16]4bit表示是f,c,x,s的。所以能夠在機器執行的時候,

        給予不同的執行結果。為了代碼向后兼容性,建議使用f,c,x,s尾綴



        關鍵詞: ARMCPSR_cxs

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 内黄县| 句容市| 上饶市| 曲阜市| 靖安县| 松原市| 开江县| 鄂尔多斯市| 乳源| 辉南县| 靖安县| 佛坪县| 卓尼县| 东城区| 井陉县| 大庆市| 哈尔滨市| 鸡西市| 乡宁县| 东城区| 曲靖市| 滨州市| 齐齐哈尔市| 阜阳市| 伊宁市| 泌阳县| 延寿县| 沙坪坝区| 明溪县| 赤壁市| 隆尧县| 上林县| 香港 | 毕节市| 子洲县| 松江区| 京山县| 抚宁县| 新昌县| 南乐县| 梓潼县|