新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM微處理器的編程模型之:ARM寄存器組織

        ARM微處理器的編程模型之:ARM寄存器組織

        作者: 時間:2013-09-13 來源:網絡 收藏

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

        【例3.2】

        使用SUBS指令從寄存器r1中減去常量1,然后把結果寫回到r1,其中CPSR的Z位將受到影響。

        指令執行前:

        CPSR中Z=0

        r1=0x00000001

        SUBS r1,r1,#1

        SUB指令執行結束后:

        r1=0x0

        CPSR中Z=1

        目的寄存器是r15的帶“位設置”的算術和邏輯運算指令,也可以將SPSR的值復制到CPSR中,這種操作主要用于從異常中斷程序中返回。

        用MSR指令向CPSR/SPSR寫進新值。

        目的寄存器位r15的MRC協處理器指令通過這條指令可以將協處理器產生的條件標志位的值傳送到處理器。

        在中斷返回時,使用LDR指令的變種指令可以將SPSR的值復制到CPSR中。

        2.Q標志位

        在帶DSP指令擴展的 v5及更高版本中,bit[27]被指定用于指示增強的DAP指令是否發生了溢出,因此也就被稱為Q標志位。同樣,在SPSR中bit[27]也被稱為Q標志位,用于在異常中斷發生時保存和恢復CPSR中的Q標志位。

        v5以前的版本及ARM v5的非E系列處理器中,Q標志位沒有被定義。屬于待擴展的位。

        3.控制位

        CPSR的低8位(I、F、T及M[4∶0])統稱為控制位。當異常發生時,這些位的值將發生相應的變化。另外,如果在特權模式下,也可以通過軟件編程來修改這些位的值。

        ① 中斷禁止位

        I=1,IRQ被禁止。

        F=1,FIQ被禁止。

        ② 狀態控制位

        T位是處理器的狀態控制位。

        T=0,處理器處于ARM狀態(即正在執行32位的ARM指令)。

        T=1,處理器處于Thumb狀態(即正在執行16位的Thumb指令)。

        當然,T位只有在T系列的ARM處理器上才有效,在非T系列的ARM版本中,T位將始終為0。

        ③ 模式控制位

        M[4∶0]作為位模式控制位,這些位的組合確定了處理器處于哪種狀態。表3.3列出了其具體含義。

        只有表中列出的組合是有效的,其他組合無效。

        表3.3 狀態控制位M[4∶0]

        M[4∶0]

        處理器模式

        可以訪問的寄存器

        0b10000

        User

        PC,r14~r0,CPSR

        0b10001

        FIQ

        PC,r14_fiq~r8_fiq,r7~r0,CPSR,SPSR_fiq

        0b10010

        IRQ

        PC,r14_irq~r13_irq,r12~r0,CPSR,SPSR_irq

        0b10011

        Supervisor

        PC,r14_svc~r13_svc,r12~r0,CPSR,SPSR_svc

        0b10111

        Abort

        PC,r14_abt~r13_abt,r12~r0,CPSR,SPSR_abt

        0b11011

        Undefined

        PC,r14_und~r13_und,r12~r0,CPSR,SPSR_und

        0b11111

        System

        PC,r14~r0,CPSR(ARM v4及更高版本)

        注意

        由于用戶模式(User)和系統模式(System)是非異常模式,所以沒有單獨的SPSR保存程序狀態字。在用戶模式或系統模式下,讀SPSR將返回一個不可預知的值,而寫SPSR將被忽略。

        塵埃粒子計數器相關文章:塵埃粒子計數器原理

        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 桃园县| 东海县| 增城市| 天峻县| 宜州市| 乌拉特后旗| 福泉市| 米泉市| 宣城市| 工布江达县| 彩票| 商都县| 通海县| 甘孜县| 霍城县| 元江| 贞丰县| 宜章县| 民县| 迁安市| 林口县| 平定县| 镇宁| 南江县| 玉环县| 宁化县| 唐山市| 沈丘县| 辽宁省| 东安县| 杂多县| 长汀县| 永靖县| 偏关县| 密山市| 洛隆县| 曲松县| 宜兰市| 拉孜县| 黔西| 墨脱县|