ARM的基本設定
ARM 采用的是位架構.
ARM 約定:
Byte : bits
Halfword : bits ( byte)
Word : bits ( byte)
大部分ARM core 提供:
ARM 指令集(-bit)
Thumb 指令集(-bit )
Thumb2指令集( & bit)
Jazelle cores 支援 Java bytecode
ARM處理器工作模式
ARM 有個基本工作模式:
User : 非特權模式,大部分任務執行在這種模式
FIQ : 當一個高優先級(fast) 中斷産生時将會進入這種模式
IRQ : 當一個低優先級(normal) 中斷産生時将會進入這種模式
Supervisor :當複位或軟中斷指令執行時将會進入這種模式
Abort : 當存取異常時将會進入這種模式
Undef : 當執行未定義指令時會進入這種模式
System : 使用和User模式相同寄存器集的特權模式
Note:
除User(使用者模式)是Normal(普通模式)外,其他種都是Privilege(特權模式)。
Privilege中除Sys模式外,其餘種為異常模式。
各種模式的切換,可以是程式員通過代碼主動切換(通過寫CPSR寄存器);也可以是CPU在某些情況下自動切換。
各種模式下權限和可以通路的寄存器不同。
ARM的37個寄存器詳解
、ARM共有個寄存器,都是位長度,但是每種模式下最多隻能看到個寄存器,其他寄存器雖然名字相同但是在目前模式不可見。
、個寄存器中個為“通用”型,個固定用作PC,一個固定用作CPSR,個固定用作種異常模式下的SPSR。
、對r13這個名字來說,在ARM中共有個名叫r13(又叫sp)的寄存器,但是在每種特定處理器模式下,隻有一個r13是目前可見的,其他的r13必須切換到他的對應模式下才能看到。這種設計叫影子寄存器(banked register)
CPSR程式狀态寄存器
條件位:
N = Negative result from ALU
Z = Zero result from ALU
C = ALU operation Carried out
V = ALU operation oVerflowed
Q 位:
僅ARM 5TE/J架構支援
訓示飽和狀态
J 位:
僅ARM 5TE/J架構支援
J = 1: 處理器處于Jazelle狀态
中斷禁止位:
I = 1: 禁止 IRQ.
F = 1: 禁止 FIQ.
T 位:
僅ARM xT架構支援
T = 0: 處理器處于 ARM 狀态
T = 1: 處理器處于 Thumb 狀态
Mode位:
處理器模式位