1.15.ARM汇编指令3之逻辑指令
2017-08-04 17:06
239 查看
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中
* 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中
相关文章推荐
- 单指令周期CPU-----逻辑、移位操作和空指令
- 第2页:指令协议、逻辑协议、物理接口释义
- 8086逻辑运算和移位指令
- (三)逻辑运算指令和串操作指令
- arm指令集算数和逻辑指令
- 新入门单片机的逻辑指令
- 汇编语言 2位十六进制数(字符),转换成数值保存到字节变量num(需要用逻辑左移指令或乘法指令)
- ARM指令:算术和逻辑指令
- 探索Lua5.2内部实现:虚拟机指令(7) 关系和逻辑指令
- 第2页:指令协议、逻辑协议、物理接口释义
- VueJS处理逻辑指令:v-if
- Android免Root权限Hook系统函数修改程序运行时内存指令逻辑
- 汇编逻辑运算指令笔记
- 【汇编指令】数据处理指令之逻辑指令
- 第2页:指令协议、逻辑协议、物理接口释义
- SIMATIC 位逻辑指令笔记
- 逻辑指令BIC的用法
- 汇编逻辑运算指令笔记
- 自己动手写CPU之第五阶段(3)——MIPS指令集中的逻辑、移位与空指令
- 常用汇编逻辑运算指令