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编辑  收藏  举报

导航