ARM逻辑运算指令

本文详细解析了ARM汇编语言中的四种位运算指令:AND(按位与)、ORR(按位或)、EOR(按位异或)及BIC(位清零指令)。通过具体实例展示了如何使用这些指令进行位操作,如位清零、取反和位检测等。

1、AND(按位与)同时为真(1)结果为真,其它为假。

MOV R0,#0x02            ;R0=0X2
AND R0,R0,#0x01            ;R0=R0&0x01=0000 0010 & 0000 0001= 0
MOV R1,#0x07            ;R1=0X7
MOV R3,#0x05            ;R3=0X5
AND R2,R1,R3            ;R2=R1&R3= 0000 0111 & 0000 0101 = 0000 0101=5

2、ORR(按位或)有一个为真(1)结果为真,都为假(0)结果才为假。

MOV R0,#0x01           ;R0=0X1
ORR  R0,R0,#0x0F       ;R0=R0|0XF=0000 0001 | 0000 1111=0000 1111=0XF  

3、EOR(按位异或)两个值不同的时候结果才为真,两个值相同结果为假。
异或的应用:用于取反操作
   1   1  0
   1   0  0
   0   1  0
   MOV R1,#0X66          ;R1=0X66
   MOV R0,#0X88          ;R0=0X88
   EOR R1,R1,#0x0F        ;R1=R1^0X0F=0110 0110 ^ 0000 1111= 0110 1001 =0X69 
   EOR R2,R1,R0          ;R2=R1^R0=0x69 ^ 0x88 =0110 1001 ^ 1000 1000 = 1110 0001=0xe1

4、BIC(位清零指令):应用对寄存器的一些位进行清零操作。

MOV R1,#0X66  ; R1=0X66
BIC R1,R1,#0x0F    ;R1=R1 AND !0X0F= 0110 0110 AND 1111 0000=0110 0000 =0X60           
!(0XF)=0XFFFFFFF0

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值