ARM 汇编访问 CPSR / SPSR 寄存器 【 msr ,mrs 】
状态寄存器访问过程:读 - 改 - 写
读 CPSR / SPSR 指令【 mrs 】 格式:<opcode><cond> Rn, cpsr/spsr
写 CPSR / SPSR 指令【 msr 】 格式:<opcode><cond> cpsr/spsr , Rn
mrs r0, cpsr @ 读取cpsr 中状态放在 r0 中 mov r1, #0x1F mvn r1, r1 @ 按位取反在放到 r1 中 and r0, r0, r1 @ r1 和 r0 按位与 结果放到 r0 中 清零r0 中的低 5 位 mov r1, #1 lsl r1, r1, #4 orr r0, r0, r1 @ 置 1 第 5 位 主要改变用户状态 msr cpsr, r0 @ 把 r0 中修改后的数据写入 CPSR中 , 把SVC模式改为 user模式