【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

相关推荐
byte轻骑兵20 小时前
BlueZ源码编译环境配置全指南:Linux桌面原生编译 + 嵌入式ARM交叉编译 + 定制裁剪与调试实战
linux·arm开发·蓝牙·bluez·电脑蓝牙
武汉万象奥科1 天前
AGV导航控制器方案 | 基于HD-RK3576系列核心板的算控融合一体化平台
arm开发·嵌入式硬件·arm核心板·单板机
zlinear数据采集卡1 天前
从“脏信号”到“纳伏级纯净”:硬核拆解DABL7606的多级抗混叠滤波与24位过采样算法
arm开发·科技·嵌入式硬件·fpga开发·开源
透明的玻璃杯2 天前
Arm屏幕
arm开发
Fu_Lin_2 天前
Qt嵌入式从零基础到精通(01):Qt嵌入式开发全景图:从桌面Qt到ARM Linux
linux·arm开发·qt·qt5·嵌入式linux
XMAIPC_Robot2 天前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
亿道电子Emdoor3 天前
【Arm】CoreSight ATB 简介
arm开发
Dlrb12113 天前
ARM---IMX6ULL定时器详解与应用:EPIT与GPT定时器,高精度延时函数
arm开发·gpt·arm·定时器·epit·高精度延时
Dlrb12113 天前
ARM -IMX6ULL的中断系统、GIC、CP15协处理器详细讲解
arm开发·arm·imx6ull·中断·gic·cp15·协处理器
碎光拾影3 天前
i.MX6ULL时钟系统配置指南
c语言·arm开发·嵌入式硬件