Skip to content
On this page

ARM汇编_程序状态寄存器读写指令


标签:ARM32汇编/指令  

指令码

  • msrmrs
  • msr cpsr, shifter_operand:将一个立即数或者普通寄存器中的数据写到 cpsr
  • msr Rd, cpsr :将 cpsr 中的数据写到 Rd 寄存器中

注意

  • User 模式下不能修改 CPSR 的值,防止应用程序修改 CPU 状态,保护操作系统
  • User 模式下不能通过直接修改 CPSR 的数值切换到其他模式,想要实现其他模式的切换,必须要有对应的异常出现,才能进入特权模式

示例

  • 整体修改:
asm
@读取cpsr的数值
mrs r1,cpsr
	
@给CPSR一个新的 数值,直接给值
msr cpsr,0XD0
  • 修改部分:
asm
@只修改模式位,其他位不变
@读取cpsr的数值
mrs r1,cpsr
@修改低5位
bic r1,r1,#0x1f
orr r1,r1,#0x10
msr cpsr,r1   @写回

Last updated: