Assembly 为什么附加';m';在臂组件中注册后?
我想知道为什么在ARM组件中的寄存器后附加“m”。 e、 g: 在手册中,msr命令的定义如下:Assembly 为什么附加';m';在臂组件中注册后?,assembly,arm,Assembly,Arm,我想知道为什么在ARM组件中的寄存器后附加“m”。 e、 g: 在手册中,msr命令的定义如下: MSR{cond} psr_fields, Rm ^ 这并不是说你必须在寄存器名后面写“m”,Rm只是R0,R1。。。R151;事实上,在一些情况下,“m”是斜体的,以表明它只是一个数字的占位符(我实际上看到了Rn,对于像我一样习惯x86的人来说,这可能更清楚,其中rm通常表示“寄存器或内存操作数”) 你的例子其实很简单 msr cpsr,r0 这
MSR{cond} psr_fields, Rm
^
这并不是说你必须在寄存器名后面写“m”,Rm只是R0,R1。。。R151;事实上,在一些情况下,“m”是斜体的,以表明它只是一个数字的占位符(我实际上看到了Rn,对于像我一样习惯x86的人来说,这可能更清楚,其中rm通常表示“寄存器或内存操作数”) 你的例子其实很简单
msr cpsr,r0
msr
参考文献中,我发现PC(R15)在某些备注中被明确排除在外,在某些型号中SP(R13)也被排除在外。一般来说,R13-15有些特殊,文档甚至说R15这并不是说你必须在寄存器名后面写“m”,Rm只是R0,R1。。。R151;事实上,在一些情况下,“m”是斜体的,以表明它只是一个数字的占位符(我实际上看到了Rn,对于像我一样习惯x86的人来说,这可能更清楚,其中rm通常表示“寄存器或内存操作数”) 你的例子其实很简单
msr cpsr,r0
msr
参考文献中,我发现PC(R15)在某些备注中被明确排除在外,在某些型号中SP(R13)也被排除在外。一般来说,R13-15有些特殊,文档甚至说R15那么,是什么让您将文档中的Rm解释为含义
R0m
,而不仅仅是R0
R
表示寄存器,m不是文字;它标识哪个寄存器-0到12。如果您尝试过,您会发现代码无法汇编-后缀m无效,因此这个问题毫无意义。注意add语法如何显示Rd、Rn、shifter操作数?这些只是r0-r15,但您需要区分指令中的两个寄存器,这样当您查看上面的机器代码时,您可以在指令中为该寄存器放置正确的位模式。那么,是什么让您将文档中的Rm解释为含义R0m
,而不是r0
R
表示寄存器,m不是文字;它标识哪个寄存器-0到12。如果您尝试过,您会发现代码无法汇编-后缀m无效,因此这个问题毫无意义。注意add语法如何显示Rd、Rn、shifter操作数?这些只是r0-r15,但您需要区分指令中的两个寄存器,以便在查看上面的机器代码时,可以在指令中放置该寄存器的正确位模式。