ARM处理器基础

1.处理器工作模式

 用户(usr):正常ARM程序执行状态 

 快中断(fiq):为支持数据传输或通道处理设计 

 中断(irq):用于一般用途的中断处理 

 管理(svc):操作系统保护模式 

 中止(abt): 数据或指令预取中止后进入 

 系统(sys):操作系统的特权用户模式 

 未定义(und):执行了一个未定义指令时进入 

除用户模式以外,其他的所有6种模式称之为非用户模式(特权模式);除去用户模式和系统模式外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。

  arm微处理器的工作模式可以通过改变软件改变,也可以通过外部中断或异常处理改变。大多数应用程序运行在用户模式下,此时,某些被保护的系统资源无法访问。

2.ARM寄存器

  ARM寄存器分为通用寄存器和状态寄存器。通用寄存器用于保存数据和地址。状态寄存器用来标识或设置处理器的模式或工作状态等功能。ARM处理器有37个32位寄存器,其中31个通用寄存器,6个状态寄存器。但是这些寄存器不能同时被访问,最多可以有18个活动(16个数据寄存器,2个状态寄存器)。

  ⒈通用寄存器

①未分组寄存器:R0~R7(在中断或异常处理进行工作模式转换时,可能会造成寄存器中数据的破坏)

②分组寄存器:包括R8~R4(对于分组寄存器,每一次访问的物理寄存器与当前工作模式有关)

③程序计数器:寄存器R15用做程序寄存器(PC)。(用于控制程序中指令的执行顺序,正常运行时,PC指向CPU运行的下一条指令。每次取址后PC的值会自动修改以指向下一条指令。)


  ⒉状态寄存器

ARM体系结构包含一个当前程序状态寄存器CPSR(R16)和五个备份的程序状态寄存器(SPSRs)。CPSR可在任何工作模式下被访问,用来保存ALU中的当前操作信息、控制允许和禁止中断、设置处理器的工作模式等。备份的程序状态寄存器用来进行异常处理。


⒈条件码标志

N为1表示负数、Z为1表示运算结果为0、C为进位标志(加法产生进位时为1,减法产生借位时为0)、V为1表示有溢出。

⒉控制位

中断禁止位包括I、F为1时表示禁止。

T标志位用来区分处理器工作状态,为1时,程序运行于Thumb状态,为0则为ARM状态。

工作模式位M[4:0]用来区分处理器的工作状态。

M[4:0]的设置:

用户(usr)  :1 0000,可访问寄存器:PC,CPSR,R0~R14

快中断(fiq) :1 0001,可访问寄存器:PC,CPSR,SPSR_fiq,R14_fiq-R8_fiq,R7~R0

中断(irq)  :1 0010,可访问寄存器:PC,CPSR,SPSR_irq,R14_irq,R13_irq,R12~R0

管理(svc)  :1 0011,可访问寄存器:PC,CPSR,SPSR_svc,R14_svc,R13_svc,R12~R0 

中止(abt)  : 1 0111,可访问寄存器:PC,CPSR,SPSR_abt,R14_abt,R13_abt,R12~R0

系统(sys)  :1 1111,可访问寄存器:PC,CPSR,R0~R14 

未定义(und) :1 1011,可访问寄存器:PC,CPSR,SPSR_und,R14_und,R13_und,R12~R0

⒊保留位

其他位暂时不使用。


你可能感兴趣的:(Arm,&,Asm)