【ARM 常见汇编指令学习 6 - bic(位清除), orr(位或), eor(异或)】

文章目录

      • [BIC 指令](#BIC 指令)
      • [ORR 位或指令](#ORR 位或指令)
      • [EOR 异或指令](#EOR 异或指令)

上篇文章:ARM 常见汇编指令学习 5 -- arm64汇编指令 wzr 和 xzr

BIC 指令

指令格式

c 复制代码
bic{条件}{S}  Rd,Rn,operand

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

使用例子

c 复制代码
bic	r0, r0, #0x00002000    // clear bit[13]   0010 0000 0000 0000
bic	r0, r0, #0x00000007    // clear bit[2:0]  0000 0000 0000 0111

第1条汇编代码表示将 r0 寄存器的 bit13 清0,其它bit不变。

第2条汇编代码表示将 r0 寄存器的bit0-bit2清0,气他bit不变。

ORR 位或指令

指令格式

c 复制代码
orr{条件}{S}  Rd,Rn,operand

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

使用例子

c 复制代码
orr R0, R0,  #(0x1 << 8) 
orr R0, R0,  #(0x1 << 16) 

表示将 r0 寄存器的 bit8 和bit16 置 1,其它bit不变。

EOR 异或指令

指令格式

c 复制代码
eor{条件}{S}  Rd,Rn,operand 

指令说明

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

上篇文章:ARM 常见汇编指令学习 5 -- arm64汇编指令 wzr 和 xzr

相关推荐
BigDark的笔记1 小时前
【ARM汇编】0x01_ARM和C混合编程实现基本运算
c语言·汇编·arm开发
路溪非溪3 小时前
Linux下iw工具的使用总结
linux·网络·arm开发·驱动开发
路溪非溪5 小时前
关于Linux中的日志问题
linux·arm开发·驱动开发
与遨游于天地1 天前
从 BPF 到 eBPF:一场 Linux 内核的“可编程”革命
linux·运维·arm开发
Chuncheng's blog1 天前
Ubuntu 24.04 ISO国内镜像下载(ARM / AMD64)
arm开发·ubuntu
忆和熙2 天前
ARMv8异常的类型与处理
arm开发·arm异常
EnglishJun2 天前
ARM嵌入式学习(二) --- 入门51(中断)
arm开发·学习
头发够用的程序员3 天前
GPU 流水线底层探索:从 SIMT 前端到 SIMD 后端的全链路解析
arm开发·人工智能·嵌入式硬件·深度学习·硬件架构·边缘计算
梁洪飞3 天前
armv7a和uboot里面的重要概念
arm开发·嵌入式硬件·arm
忆和熙4 天前
ARM异常概述与级别(ARMv8异常机制——异常的概述、级别)
arm开发·arm异常