上面是不同工作模式对应的寄存器,其中要重点知道的为
sp : stack pointer 用于保存栈顶对应的内存地址,当需要入栈或出栈时,将访问sp对应的内存地址
lr:link register 链接寄存器
用于保存跳转过程中子程序的返回地址
pc:
给pc写值,处理器会跳转到所写位置执行位置
读pc会读得pc指令的下下一条指令
他的前四位为为条件标记位,并和你的主动更新的意愿有关系
N[31]:负的条件标记
Z[30]:零的条件标记
C[29]:操作进位
V[28]:操作溢出
低五位为运算模式
但是需要特权模式才能去修改他的工作模式
T[5]:决定的是用的是ARM指令集还是Thumb指令集
A[6]:异常终止的频闭位
I [7]:中断的频闭位
F[8]:快速中断的频闭位
E[9]: 大小端序的设置
当切换进入某一个特权模式时,SPSR保存前一个工作模式的CPSR值,这样,当返回前一个工作模式时,可以将SPSR的值恢复到CPSR中;