刘帅嵌入式系统-EOR逻辑异或操作指令

刘帅嵌入式系统-EOR逻辑异或操作指令_第1张图片

EOR指令将< shifter_operand > 表示的数值与寄存器< Rn >值按位做逻辑异或操作,并把结果保存到目标寄存器< Rd > 中,同时根据操作的结果更新CPSR中相应的条件标志位。

指令的编码格式

刘帅嵌入式系统-EOR逻辑异或操作指令_第2张图片

指令的语法格式

EOR{< cond >} {S} < Rd >, < Rn> ,< shifter_operand >

其中:

  • < Rn > 寄存器为第1个操作数所在的寄存器。
  • < shifter_operand >为第2个操作数。

指令操作的伪代码

if ConditionPassed<cond> then
	Rd=Rn EOR shifter_operand
	if S==1 and Rd==R15 then
		CPSR=SPSR
	else if S==1 then
		N Flag=Rd[31]
		Z Flag=if Rd==0 then 1 else 0
		C Flag=shifter_carry_out
		V Flag=unaffected

指令的使用

EOR指令可用于将寄存器中某些位的值取反。将某一位与0做逻辑异或操作,该位的值不变;将某一位与1做逻辑异或操作,该位的值被求反;

示例:

EOR R1, R0, R0, ROR #16 ;R1 = A^C,B^D,C^A,D^B

你可能感兴趣的:(ARM)