您当前的位置:首页 > 计算机 > 编程开发 > 汇编

汇编指令——bic(位清除)、orr(位或)、eor (异或)

时间:03-25来源:作者:点击数:

1、bic 位清除指令(Bit Clear)

指令格式

bic{条件}{S} Rd,Rn,operand

指令说明

将 Rn 的值与操作数 operand的反码按位逻辑”与”,结果存放到目的寄存器Rd 中(?)

(对于上面这个描述我是存在疑问的。根据实际代码的效果,操作数operand的哪位为1,则Rn对应的位将清除。我不清楚这里的清除是不是变为0,如果是的话,感觉bic指令的作用,是将Rn的值与操作数operand按位逻辑或,然后再将结果按位取反。因为这个指令的说明,是一些人从ARM官方文档翻译下来的,然后被传播,也不知道会不会以讹传讹呢?这个翻译会不会是说“将 Rn 的值与操作数 operand按位取反之后的值进行按位逻辑与?因此我理解为,根据operand哪个位为1,清除Rn对应的位,然后将结果存入Rd。)

关于反码的介绍,见博客原码、反码、补码,以及负数的位操作

指令示例

bic	r0, r0, #0x00002000    @ clear bits 13 (--V-)  0010 0000 0000 0000
bic	r0, r0, #0x00000007    @ clear bits 2:0 (-CAM) 0000 0000 0000 0111

2、orr 位或指令

指令格式

orr{条件}{S} Rd,Rn,operand

指令说明

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

根据operand哪个位为1,将Rn对应的位设置为1,然后将结果存入Rd。

指令示例

orr R0,R0,#0xd3 @将R0的第[7:0]位与b'1101 0011按位或,并保存在R0中

3、eor 异或指令(exclusive or)

指令格式

eor{条件}{S} Rd,Rn,operand

指令说明

eor指令将Rn 的值与操作数operand2按位逻辑”异或”,相同为0,不同为1,结果存放到目的寄存器Rd 中。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门