ARM处理器寄存器

来源:互联网 发布:西南大学网络教育好吗 编辑:程序博客网 时间:2024/05/06 19:42

++++++++++++++++++++++++++++++++++++++++++

       本文系本站原创,欢迎转载! 转载请注明出处:

    http://blog.csdn.net/mr_raptor/article/details/6556163

++++++++++++++++++++++++++++++++++++++++++++++++

 

          处理器不同模式下寄存器

CPU的模式不同,在其对应模式下可以使用的寄存器也不相同,如下表所示:

其中R0~R7在所有模式下都可以使用的共有寄存器,R8~R12是快速中断模式下私有的寄存器,其它模式下不能使用,之所以叫其快速中断,是因为快速中断模式下,这几个私有寄存器里数据在模式切换时可以不用入栈保存。

除了用户模式和系统模式共用一组R13R14,其余每种模式都私有自己的R13R14,因为在每种模式下都有自己的栈空间用于执行程序,在执行程序过程中还要保存返回地址,这样可以保证在进入不同模式时,当前模式下栈空间不被破坏。比如:网卡因为数据到达,产生了中断进入中断模式,在中断模式下有自己的中断处理例程(ISR),ISR在执行时要用到栈空间,因此要使用R13R14。中断处理完成后,返回用户模式下,要继续执行被网卡中断信号中断的执行程序。

用户模式和系统模式为什么要共用一组R13R14呢?这是因为,在特权模式下可以自由切换工作模式,但是如果切换到用户模式下,就不能再切换到特权模式了,这是CPU为操作系统提供的保护机制,但是有的时候就需要切换到用户模式下去使用其R13R14寄存器,比如当操作系统的进程进行上下文切换时,如果用户模式和系统模式共用一组寄存器,那么可以切换到系统模式下(系统模式是特权模式)进行操作。

所有R15CPU同时只能处理一条指令,在取指时,有一个CPSR表示当前<FONT face=""">CPU的状态即可。

 

 

0 0
原创粉丝点击