搜尋此網誌

2011年11月13日 星期日

程式狀態暫存器(CPSR: Current Program Status Register)


  1. N: N=1, 為負數。N=0, 為正數。
  2. Z: 結果為0時,Z=1(通常表示結果相等)。否則為0。
  3. C: 若加法產生進位(C=1),否則C=0。減法產生借位(C=0),否則C=1。對於移位的指令,C位元是最後一個移出值。非加減法C位元通常不變。
  4. V: 當加法或減法運算時,發生溢位時(V=1)。若運算元和結果是補數形式的帶符號整數,對於非加減法指令,V位元通常不變。
  5. 控制位元 
          (1) 中斷禁止位元
                I位元 = 1, 除能IRQ中斷。
                F位元 = 1, 除能FIQ中斷。
                T位元,在ARM v3腋下之版本T位元為0。
 
                              在ARM v4以上的T位元:
                               T = 1,表示ARM模式
                               T = 0,表示Thumb模式

                              在ARM v5以上的T位元:
                               T = 1,表示ARM模式
                               T = 0,表示執行下一到指令,引起位定義指令異常。

           (2) 模式位元
                 M0、M1、M2、M3與M4(M[4:0])是模式位元,決定處理器的工作模式。
M[4:0]
模式
可存取的暫存器
0x10(0b10000)
User
PC, R14~R0, CPSR
0x11(0b10001)
FIQ
PC, R14_fiq~R8_fiq, R7~R0, CPSR, SPSR_fiq
0x12(0b10010)
IRQ
PC, R14_irq, R13_irq, R12~R0, CPSR, SPSR_irq
0x13(0b10011)
管理
PC, R14_svc, R13_svc, R12~R0, CPSR, SPSR_svc
0x17(0b10111)
中止
PC, R14_abt, R13_abt, R12~R0, CPSR, SPSR_abt
0x1B(0b11011)
未定義
PC, R14_und, R13_und, R12~R0, CPSR, SPSR_und
0x1F(0b11111)
系統
PC, R14~R0, CPSR(ARM v4以上的版本)

沒有留言:

張貼留言