1.15.ARM汇编指令3之逻辑指令

来源:互联网 发布:mac 程序员必备软件 编辑:程序博客网 时间:2024/06/05 15:36

ARM汇编指令之逻辑指令:and & orr & eor & bic

* and

逻辑与操作指令,将operand2的值与寄存器Rn的值按位逻辑与操作,结果保存到Rd中。

指令格式:

and{cond}{S}  Rd,Rn,operand2

eg:

ands r0,r0,#0x01   ; r0=r0&0x01  取出最低位数据

and r2,r1,r3            ; r2=r1&r3


* orr

逻辑或操作指令,将operand2的值与寄存器Rn的值按位逻辑或操作,结果保存到Rd中。

指令格式:

orr{cond}{S}  Rd,Rn,operand2

eg:

orr r0,r0,#0x0f    ; r0=r0 | 0x0f 将r0中数值低四位置1


mov r1,r2,lsr #4

orr  r3,r1,r3,lsl #8    ; 使用orr 指令将r2的高8位数据移入到r3的低8位中


* eor

逻辑异或操作指令,将operand2的值与寄存器Rn的值按位异或操作,结果保存到Rd中。

指令格式:

eor{cond}{S} Rd,Rn,operand2

eg:

eor  r1,r1,#0x0f   ; 将r1的低四位取反

eor  r2,r1,r0         ; r2=r1^r0

eors r0,r5,#0x01  ; r0=r5^0x01


* bic

位清除指令,将寄存器Rn的值与operand2 的值的反码按位作逻辑与操作,结果存放在Rd中。(或者你可以理解成对应operand2操作数中位为1的 Rn寄存器相应的位置0,其它位不变)。

指令格式:

bic{cond}{S}  Rd,Rn,operand2

eg:

bic r1,r1,#0x0f    ; 将r1的低四位清零,其它位不变。

bic r1,r2,r3          ; 将r3的值的反码与r2相逻辑与,结果保存到r1中