【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

相关推荐
徐某人..1 天前
基于i.MX6ULL平台的智能网关系统开发
arm开发·c++·单片机·qt·物联网·学习·arm
2035去旅行1 天前
嵌入式开发,如何选择C标准库
linux·arm开发
进击的小头1 天前
20_第20篇:嵌入式外设驱动开发基础:寄存器级开发与库函数开发对比实战
arm开发·驱动开发·单片机
AI服务老曹1 天前
架构实战:如何构建支持X86/ARM及异构GPU/NPU的跨平台企业级AI视频管理系统?
arm开发·人工智能·架构
ai产品老杨1 天前
【架构深研】如何构建兼容X86/ARM与异构算力的AI视频中台?基于GB28181与边缘计算的源码交付实践
arm开发·人工智能·架构
ai产品老杨1 天前
解构企业级AI视频中台:基于X86/ARM与GPU/NPU异构架构的深度演进与源码交付实践
arm开发·人工智能·音视频
Smart-佀2 天前
涨薪秘技:智能家居中的BLE协议与实现
网络·arm开发·嵌入式硬件·microsoft
W.W.H.2 天前
远程连接协议(SSH\Telnet\FTP\Serial等)
运维·arm开发·经验分享·ssh
程序员黄老师2 天前
一分钟了解ARM发展史与全系列产品
arm开发·嵌入式硬件·arm
AI服务老曹2 天前
【架构深度解析】从X86到ARM的异构算力调度:如何利用 Docker 与 GB28181 构建高可用的私有化AI视频管理平台(含源码交付方案)
arm开发·docker·架构