如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
CPSR各位含义2012-8-19CPSR_f或SPSR_fCPSR_s或SPSR_sCPSR_x或SPSR_xCPSR_c或SPSR_c313029282726252423222120191817161514131211109876543210NZCV--------------------IFTM4M3M2M1M0负数或小于零进位或借位或扩展溢出保留位IRQ禁止1禁止0允许FIQ禁止1禁止0允许状态位0ARM1Thumb模式位10000-0x0010-用户10001-0x0011-快速中断10010-0x0012-中断10011-0x0013-管理10111-0x0017-未定义11111-0x001F-系统了解ARM处理器的工作模式和各个寄存器的功能,对移植操作系统是很有帮助的。ARM处理器共有7种不同的处理器模式:1、用户模式(User):正常程序的执行模式。2、快速中断模式(FIQ):用于高速数据传输和通道处理。3、外部中断模式(IRQ):用于通常的外部中断处理。4、特权模式(SVE):又叫管理模式,供操作系统使用的一种保护模式。5、数据访问中止模式(ABT):用于虚拟存储和存储保护。6、未定义指令中止模式(UND):用于支持通过软件方针硬件的协处理器。7、系统模式(SYS):用于运行特权级的操作系统任务。除了用户模式以外的其他6种处理器模式称为特权模式。在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器的模式切换。其中,除了系统模式以外,其他5种特权模式又称为异常模式。大多数的用户程序运行在用户模式下。这时,应用程序不能够访问一些受操作系统保护的系统资源。应用程序也不能直接进行模式的切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器模式切换。ARM处理器一共有37个寄存器:31个通用寄存器、6个状态寄存器。1、未备份寄存器(R0-R7)对于每个未备份寄存器来说,在所有的处理器模式下指的都时同一物理寄存器。在异常中断造成处理器模式切换时,由于不同的处理器模式使用相同的物理寄存器,可能造成寄存器中数据被破坏。2、备份寄存器(R8-R14)对于R8-R12来说,在快速中断模式下,每个寄存器对应两个不同的物理寄存器。对于R13-R14来说,每个寄存器对应6个不同的物理寄存器,其中一个是用户模式和系统模式共用的。寄存器R13常用做栈指针。寄存器R14又被称为连接寄存器(LR)。有下面两种特殊用途:A、每个处理器模式自己的物理R14中存放在当前子程序的返回地址。当通过BL或BLX指令调用子程序时,R14被设置成该子程序的返回地址。B、当异常中断发生时,该异常模式特定的物理R14被设置成该模式将要返回的地址,对于有些异常模式,R14的值有可能与将返回的地址有一个常数的偏移量。3、程序计数器R15对于用户来说,尽量避免使用STR/STM指令来保存R15的值。当成功向R15写入一个地址数值时,程序将跳转到该地址执行。4、程序状态寄存器CPSR(当前程序状态寄存器)可以在任何处理器模式下被访问。每中处理器模式下都有一个专用的物理状态寄存器,称为SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。由于用户模式和系统模式不是异常中断模式。所以他们没有SPSR。当在用户模式和系统模式中访问SPSR,将会产生不可预知的结果。CPSR和SPSR的格式相同,如下:0:M01:M12:M23:M34:M45:T6:F(=1是禁止)7:I26:DNM(RAZ)27:Q28:V29:C30:Z31:NMRS:状态寄存器到通用寄存器的传送指令。MSR:通用寄存器到状态寄存器的传送指令。//////////////////////////////////////////////////msrcpsr_cxsf,r1;这里的cxsf表示从低到高分别占用的4个8bit的数据域指令中有时还有出现cpsr_cf,cpsr_all,cpsr_c等,这里:c指CPSR中的controlfield(PSR[7:0])f指flagfield(PSR[31:24])x指extendfield(PSR[15:8])s指statusfield(PSR[23:16])其中cpsr的位表示为:31302928---76-43210NZCVIFM4M3M2M1M000000User26模式00001FIQ26模式00010IRQ26模式00011SVC26模式10000User模式10001FIQ模式10010IRQ模式10011SVC模式10111ABT模式11011UND模式深入分析:对于