当前位置: 首页 > news >正文

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

文章目录

      • BIC 指令
      • ORR 位或指令
      • EOR 异或指令

上篇文章:ARM 常见汇编指令学习 5 – arm64汇编指令 wzr 和 xzr
下篇文章:ARM 常见汇编指令学习 7 - LDR 指令与LDR伪指令及 mov指令

BIC 指令

指令格式

bic{条件}{S}  Rd,Rn,operand

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

使用例子

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

指令格式

orr{条件}{S}  Rd,Rn,operand

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

使用例子

orr R0, R0,  #(0x1 << 8) 
orr R0, R0,  #(0x1 << 16) 

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

EOR 异或指令

指令格式

eor{条件}{S}  Rd,Rn,operand 

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

上篇文章:ARM 常见汇编指令学习 5 – arm64汇编指令 wzr 和 xzr
下篇文章:ARM 常见汇编指令学习 7 - LDR 指令与LDR伪指令及 mov指令

http://www.lryc.cn/news/105052.html

相关文章:

  • 在CSDN学Golang场景化解决方案(EFK分布式日志系统方案)
  • MySQL篇
  • 图数据库Neo4j学习四——Spring Data NEO
  • UE虚幻引擎 UTextBlock UMG文本控件超过边界区域以后显示省略号
  • Spring Boot实践五 --异步任务线程池
  • <C语言> 动态内存管理
  • 【ASPICE】:学习记录
  • 图论--最短路问题
  • go 结构体 - 值类型、引用类型 - 结构体转json类型 - 指针类型的种类 - 结构体方法 - 继承 - 多态(interface接口) - 练习
  • 盘点16个.Net开源项目
  • 记录对 require.js 的理解
  • minio-分布式文件存储系统
  • Kindling the Darkness: A Practical Low-light Image Enhancer论文阅读笔记
  • AcWing 4575. Bi数和Phi数
  • 《Federated Unlearning via Active Forgetting》论文精读
  • Java课题笔记~Maven基础知识
  • xcode中如何显示文件后缀
  • SpringBoot使用JKS或PKCS12证书实现https
  • 云原生势不可挡,如何跳离云原生深水区?
  • python的decimal或者叫Decimal,BigDecimal
  • Mac环境变量问题
  • Shell脚本学习-Web服务监控
  • 【ChatGPT】基于WSL+Docker的ChatGPT PLUS共享服务部署
  • 【论文阅读24】Better Few-Shot Text Classification with Pre-trained Language Model
  • 119、Spring容器启动流程是怎样的(配有Spring启动完整流程图)
  • 微信公众号开发学习
  • 【LeetCode】221.最大正方形
  • 生成模型相关算法:EM算法步骤和公式推导
  • Compose手势
  • 【雕爷学编程】Arduino动手做(177)---ESP-32 掌控板2