首页 > 代码库 > CPSR寄存器
CPSR寄存器
众所周知,ARM每种工作模式除R0~R15共16个寄存器外,还有第17个寄存器CPSR,叫做 当前程序状态寄存器,CPSR中一些位被用于标识各种状态,一些位被用于标识当前出于什么工作模式
其中cpsr_c代表的是这32位中的低8位,也就是控制位
当你看到有些程序里这样写
msr cpsr_c 0xd2 //msr是arm汇编中专门用来修改cpsr这样有特定功能的寄存器的指令
//具体请参考Arm汇编手册和Arm体系架构手册
这样的语句时,就是在更改这8位的状态
M控制位控制处理器模式,具体含义如下:M[4:0] 处理器模式 可访问的寄存器ob10000 user pc,r14~r0,CPSR0b10001 FIQ PC,R14_FIQ-R8_FIQ,R7~R0,CPSR,SPSR_FIQ0b10010 IRQ PC,R14_IRQ-R13_IRQ,R12~R0,CPSR,SPSR_IRQ0B10011 SUPERVISOR PC,R14_SVC-R13_SVC,R12~R0,CPSR,SPSR_SVC0b10111 ABORT PC,R14_ABT-R13_ABT,R12~R0,CPSR,SPSR_ABT0b11011 UNDEFINEED PC,R14_UND-R8_UND,R12~R0,CPSR,SPSR_UND0b11111 SYSTEM PC,R14-R0,CPSR(ARM V4以及更高版本)
CPSR寄存器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。