分类: 嵌入式
2016-02-23 10:59:36
R13,程序通常就把它当作栈指针用。Thumb指令集可以用PUSH和POP操作,ARM指令集就只能用SRS和RFE来操作了。2.Return Register
R14又是LR,区别于其他架构的地方啊,保存了子函数的返回地址。3.Program Counter
(关联操作:BL,BLX之行后,它的下一条指令的地址就被偷偷的保存到R14里面了,其他情况下它是通用寄存器)
R15,不废话。
CPSR:当前程序状态寄存器(对应于其他架构相当于PSW)。
SPSR:保存了进入异常模式前的CPSR的值。
CPSR_C:代表了CPSR的低八位。
以上的寄存器需要用MSR,MRS才能够进行读写操作。
Byte -- 8bit四.处理器模式
Half word -- 16bit
Word -- 32bit
编号 说明
usr 0b10000 用户模式,程序通常执行时的模式大部分应用程序在usr下运行,OS在sys下运行。应用想要访问被保护的资源时,要通过产生中断,切换到sys模式。
fiq 0b10001 快速中断模式,快速传输数据(DMA?),还有Channel Process(什么意思?)
irq 0b10010 通用中断
svc 0b10011 给OS用的保护模式
abt 0b10111 保护内存,虚拟内存(访问了非法地址就进这个模式了吧?)
und 0b11011 文档中说,协处理器的软件模拟用,没接触过,暂时搁着吧
sys 0b11111 OS执行模式