ARM寄存器

-------------------------------------------------------------

Author             :tiger-john

Email               ​jibo.tiger@gmail.com​

Update-Time   : 2011年2月14日星期一

Tiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,

但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人

联系或留言给我。3Q

-------------------------------------------------------------


ARM处理器内部共有37个用户可访问的寄存器,分别为

31个通用的32位寄存器6个状态寄存器。

一.通用寄存器:

1.在汇编语言中,寄存器R0-R13为保存数据或地址值的通用寄存器。

2.其中寄存器R0-R7为未分组的寄存器。

对于任何处理器模式,它们都共享R0~R7的通用寄存器。

3.寄存器R8-R12为两个分组的物理寄存器。

   a.FIQ拥有自己独立的R8~R12的通用寄存器。

   b.其他六种处理器模式共享R8~R12的通用寄存器

注:寄存器R8~R12ARM体系结构中没有特定的用途。

FIQ单独的R8~R12可实现快速的中断处理在发生FIQ中断后,处理器不用为了保护寄存器而浪费时间,从而提高了FIQ的处理速度)

4.寄存器R13R14

a.     用户模式和系统模式公用R13R14的寄存器内容。

b.    其它五个模式拥有自己独立的R13r14寄存器内容。

c.     R13作为堆栈指针(SP),用于保存待使用的寄存器内容。

d.    寄存器R14称为链接寄存器(LR),它的作用有两个:

l  当使用BL指令调用子程序时,系统会自动将 BL指令的下一条指令的地址存入R14中。