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

一.移位指令

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指令

相关推荐

  1. ARM 汇编指令:() 运算指令

    2024-03-15 07:02:05       46 阅读
  2. ARM 汇编指令:(三)运算处理指令

    2024-03-15 07:02:05       44 阅读
  3. 汇编指令——ARM Cortex-M指令分析

    2024-03-15 07:02:05       29 阅读
  4. 汇编 -- ARM汇编之 .inst指令与udf指令使用

    2024-03-15 07:02:05       22 阅读
  5. ARM 汇编指令:(六) B 跳转指令

    2024-03-15 07:02:05       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 07:02:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 07:02:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 07:02:05       87 阅读
  4. Python语言-面向对象

    2024-03-15 07:02:05       96 阅读

热门阅读

  1. SpringCloudGateway之统一鉴权篇

    2024-03-15 07:02:05       34 阅读
  2. GPT如何做角色扮演,prompt示例大放送

    2024-03-15 07:02:05       43 阅读
  3. clickhouse(配合bytebase)_docker搭建文档

    2024-03-15 07:02:05       45 阅读
  4. 24计算机考研调剂 | 太原科技大学【官方】

    2024-03-15 07:02:05       44 阅读
  5. 速盾cdn:cdn节点缓存内容不一致怎么办?

    2024-03-15 07:02:05       44 阅读
  6. 动态规划 Leetcode 474 一和零

    2024-03-15 07:02:05       43 阅读
  7. 验证子序列(动态规划)

    2024-03-15 07:02:05       44 阅读