ARM中MSR和MRS指令的扩展是什么

时间:2019-05-15 06:12:10

标签: assembly arm

我正在学习ARM,但无法理解程序状态寄存器指令,MSR和MRS的完整形式。

示例:

MRS R0,CPSR         ; Take a copy of the CPSR.
BIC R0,R0,#0x1F     ; Clear the mode bits.
ORR R0,R0,#new_mode ; Select new mode
MSR CPSR,R0         ; Write back the modified CPSR.

1 个答案:

答案 0 :(得分:1)

有关ARM指令集问题的第一站是相关的《 ARM体系结构手册》。例如,Cortex-M3使用ARMv7-M

您可以找到:

  

B5.2.2 MRS 从特殊注册移至注册

     

将值从选定的专用寄存器移到一个   通用寄存器。

在各个地方都有特殊用途寄存器的列表,例如article,在体系结构手册和SoC中使用的特定内核的技术参考手册(TRM)中有更多定义。 / p>

特殊用途寄存器是处理器在架构上定义的内部状态,例如ALU标志,异常模型状态,安全控制等。这些与r0-r14“一般用途”寄存器不同,后者可用于主机。指令集的一部分。处理器安全模型通常会限制对此状态的访问(因此用户代码无法提升其自身的特权)。

使用特殊指令来访问特殊用途寄存器(并紧密链接协处理器寄存器),一方面可以提供相关的权限检查,另一方面可以增加可寻址空间(以仅提供两种类型为代价)操作)。