ARM 汇编指令:(四) 位运算指令

本文详细介绍了ARM汇编中的LSL逻辑左移、LSR逻辑右移指令,以及AND、ORR、EOR逻辑运算和BIC位清除指令的使用方法。
摘要由CSDN通过智能技术生成

一.移位指令

1.LSL 指令

逻辑移指令,实现将寄存器进行左移操作

lsl r1, r0, #2 //r1 = r0 * 2^2
mov r1, r0, lsl, #2 //和上一个汇编指令效果一样
add r1, r0, lsl, #2 //r1 = r1 + r0 * 2^2

2.LSR 指令

逻辑移指令,实现将寄存器进行右移操作

lsr r1, r0, #2 //r1 = r0 / 2^2
mov r1, r0, lsr, #2 //和上一个汇编指令效果一样
add r1, r0, lsr, #2 //r1 = r1 + r0 / 2^2

二.位运算

 1.AND (逻辑与指令)

  AND:将操作数1按位操作数2的结果存放在目标寄存器

MOV R1, 0x0F   ; //将寄存器R1设置为0x0F,二进制为 00001111
MOV R2, 0x03   ; //将寄存器R2设置为0x03,二进制为 00000011
AND R3, R1, R2 ; //R3 = R1 & R2
//r3结果为0x03,二进制为 00000011

  2.ORR (逻辑与指令)

  将操作数1按位操作数2的结果存放在目标寄存器

MOV R1, 0x0F   ; //将寄存器R1设置为0x0F,二进制为 00001111
MOV R2, 0x03   ; //将寄存器R2设置为0x03,二进制为 00000011
ORR R3, R1, R2 ; //R3 = R1 | R2   
//r3结果为0x0f,二进制为 00001111

  3.EOR(逻辑异或指令)

  EOR:将操作数1按位异或操作数2的结果存放在目标寄存器

MOV R1, 0x0F   ; //将寄存器R1设置为0x0F,二进制为 00001111
MOV R2, 0x03   ; //将寄存器R2设置为0x03,二进制为 00000011
EOR R3, R1, R2 ; //R3 = R1 ^ R2   
//r3结果为0x0c,二进制为 00001100

4.BIC(位清除指令 )

BIC:将操作数1按位操作数2取反的结果存放在目标寄存器(目标寄存器=操作数1 & ~操作数2)

MOV R1, 0x0F   ; //将寄存器R1设置为0x0F,二进制为 00001111
MOV R2, 0x03   ; //将寄存器R2设置为0x03,二进制为 00000011
BIC R3, R1, R2 ; //R3 = R1 & ~R2   
//r3结果为0x0c,二进制为 00001100

下一页:ARM 汇编指令:(五)CMP指令

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值