本文主要是介绍刘帅嵌入式系统-ORR逻辑或操作指令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ORR指令将< shifter_operand > 表示的数值与寄存器< Rn >值按位做逻辑或操作,并把结果保存到目标寄存器< Rd > 中,同时根据操作的结果更新CPSR中相应的条件标志位。
指令的编码格式
指令的语法格式
ORR{< cond >} {S} < Rd >, < Rn> ,< shifter_operand >
其中:
- < Rn > 寄存器为第1个操作数所在的寄存器。
- < shifter_operand >为第2个操作数。
指令操作的伪代码
if ConditionPassed<cond> thenRd=Rn OR shifter_operandif S==1 and Rd==R15 thenCPSR=SPSRelse if S==1 thenN Flag=Rd[31]Z Flag=if Rd==0 then 1 else 0C Flag=shifter_carry_outV Flag=unaffected
指令的使用
ORR指令可用于将寄存器中某些位的值设置成1。具体做法是设置一个掩码值,将该值中对应于寄存器中欲提取的位设置位1,其他的位设置成0。将寄存器的值与该掩码值做操作,即可得到想提取的位的值。
示例:
MOV R0, R2, LSR #24 ;将R2的高8位传输到R0中,R0的高24位设置成0
ORR R3, R0, R3, LSL #8 ;将R3中的数据逻辑左移8位,这时,R3的低8位为0。ORR操作将R0(高24位为0)的低8位数据传送到寄存器R3
这篇关于刘帅嵌入式系统-ORR逻辑或操作指令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!