ARM寄存器
ARM寄存器(37个)详解
ARM寄存器(37个)
1. 通用寄存器(31个)
1.1 不分组寄存器(8个)----R0-R7
1.2 分组寄存器(22个)----R8-R14
1.3 程序计数器R15(PC指针)(1个)
2. 程序状态寄存器(6个)
2.1 CPSR(1个)
2.2 SPSR(5个)
特殊的三个通用寄存器
R13通常用作堆栈指针(SP-Stack Pointer)
R14通常用作链接寄存器(LR-Link Register)用于保存子函数的返回地址,中断返回地址
R15通常用作程序计数器(PC指针)
CPSR和SPSR的区别:CPSR是原始状态寄存器,当发生如中断行为等,CPSR会发生变化,行为结束后,返回不到原始的CPSR。SPSR是保存的原始的状态的寄存器,当行为结束后,返回到SPSR寄存器。
状态寄存器的各个位的含义
第31位:N 两数相减,结果为负 N=1
结果为正 N=0
第30位:Z 两数相等 Z=1
否则 Z=0
第7位:I 当I=1时,不能产生IRQ中断
第6位:F 当F=1时,不能产生快速FIQ中断
第0,1,2,3,4位:M 确定ARM工作模式
M: 10000 Usr
10001 FIQ
10010 IRQ
10011 Supervisor
10111 Abort
11011 Undefined
11111 System
posted on 2017-03-13 21:18 observer-zhou 阅读(129) 评论(0) 编辑 收藏 举报