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~R12在ARM体系结构中没有特定的用途。
给FIQ单独的R8~R12可实现快速的中断处理(在发生FIQ中断后,处理器不用为了保护寄存器而浪费时间,从而提高了FIQ的处理速度)
4.寄存器R13和R14
a. 用户模式和系统模式公用R13和R14的寄存器内容。
b. 其它五个模式拥有自己独立的R13和r14寄存器内容。
c. R13作为堆栈指针(SP),用于保存待使用的寄存器内容。
d. 寄存器R14称为链接寄存器(LR),它的作用有两个:
l 当使用BL指令调用子程序时,系统会自动将 BL指令的下一条指令的地址存入R14中。