ARM处理器寄存器

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

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

    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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值