简介:
A I F是中断使能标志位
A标志位:
设置时禁用不精确的数据中止。这仅在ARMv6及更高版本中可用。在早期版本中,CPSR和SPSR的位[8]必须被视为保留位
I标志位:
设置后禁用IRQ中断
F标志位:
设置后禁用FIQ中断
模式标志位
简介:
M[4:0]用来指示模式标志位。
M[4:0] Mode Accessible registers
0b10000 User PC, R14 to R0, CPSR
0b10001 FIQ PC, R14_fiq to R8_fiq, R7 to R0, CPSR, SPSR_fiq
0b10001 IRQ PC, R14_irq, R13_irq, R12 to R0, CPSR, SPSR_irq
0b10011 Supervisor PC, R14_svc, R13_svc, R12 to R0, CPSR, SPSR_svc
0b10111 Abort PC, R14_abt, R13_abt, R12 to R0, CPSR, SPSR_abt
0b11011 Undefined PC, R14_und, R13_und, R12 to R0, CPSR, SPSR_und
0b11111 System PC, R14 to R0, CPSR (ARMv4 and above)
并非模式位的所有组合都定义了一个有效的处理器模式,只能使用那些明确描述的组合
T和J标志位
简介:T和J位选择当前指令集
J T Instruction set
0 0 ARM
0 1 Thumb T为1时是Thumb指令集
1 0 Jazelle
1 1 RESERVED
说明:Jazelle操作码执行的硬件加速可以在ARMv5TEJ和ARMv6及更高版本上实现(实际上是给JVMs提供加速的)。在这些架构变体中,当硬件加速器存在并启用时,BXJ指令用于从ARM状态切换到Jazelle状态。如果硬件加速器禁用或不存在,则BXJ指令的行为为BX指令,J位保持清零。有关详细信息,请参阅第A2-53页上的“Jazelle扩展”
异常
ARM架构支持七种类型的异常。表A2-4列出了用于处理每种类型的异常类型和处理器模式。
当异常发生时,强制执行从与异常类型相对应的固定内存地址。这些固定地址称为异常向量
Exception type Mode VE(a) Normal address High vector address
Reset Supervisor 0x00000000 0xFFFF0000
Undefined instructions Undefined 0x00000004 0xFFFF0004
Software interrupt (SWI) Supervisor 0x00000008 0xFFFF0008
Prefetch Abort (instruction fetch memory abort) Abort 0x0000000C 0xFFFF000C
Data Abort (data access memory abort) Abort 0x00000010 0xFFFF0010
IRQ (interrupt) IRQ 0 0x00000018 0xFFFF0018
1 IMPLEMENTATION DEFINED
FIQ (fast interrupt) FIQ 0 0x0000001C 0xFFFF001C
1 IMPLEMENTATION DEFINED
VE说明: VE = vectored interrupt enable (CP15 control); RAZ when not implemented