CPSR & SPSR 程序状态寄存器的访问 笔记

CPSR & SPSR 




一行短短的汇编触发的学习笔记~



ARM 微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传递数据。程序状态寄存器(*PSR) 的访问指令包括一下两条:




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

关于MRS指令:

1.         当需要改变程序状态寄存器的内容时,可用MRS将程序状态寄存器的内容读入通用寄存器,修改后再写回到程序状态寄存器。

2.         当在异常处理或者进程切换时, 需要保存程序状态寄存器的值,可以先用该指令读出程序状态寄存器的值,然后保存.


MRS R0, SPSR; //把SPSR的值传送到R0寄存器中去.

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


关于 MSR指令:

          MSR指令用于将操作数的内容传送到程序状态寄存器的特定域中。其中,操作数可以为通用寄存器或立即数。域用于设置程序状态寄存器中需要操作的位。


下图可以看到,32bits的 PSR可以分为4个域。F S X C


MSR CPSR_c,R0 ; //传送R0 到SPSR中,但仅仅修改CPSR中的控制域


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




CPSR : current program status register




嘿嘿~ ARM的7种工作模式由CPSR寄存器的M[0:4]5个位来指明


SPSR:      Saved Program Status Register


SPSR用来进行异常处理,有以下功能

1.保存ALU中的当前操作信息。

2.控制允许和禁止中断。

3.设置处理器的运行模式。







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值