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

ARM base instruction -- adc

Add with Carry adds two register values and the Carry flag value, and writes the result to the destination register.

带进位加法将两个寄存器值和进位标志值相加,并将结果写入目标寄存器。


32-bit variant
    Applies when sf == 0.
    ADC <Wd>, <Wn>, <Wm>

64-bit variant
    Applies when sf == 1.
    ADC <Xd>, <Xn>, <Xm>


Decode for all variants of this encoding
 integer d = UInt(Rd);
 integer n = UInt(Rn);
 integer m = UInt(Rm);
 integer datasize = if sf == '1' then 64 else 32;

Operation
 bits(datasize) result;
 bits(datasize) operand1 = X[n];
 bits(datasize) operand2 = X[m];
 
 (result, -) = AddWithCarry(operand1, operand2, PSTATE.C);
 
 X[d] = result;


做比 32 位大的加法, 加两个 128 位的数。

 128 位结果: 寄存器 0、1、2、和 3
 第一个 128 位数: 寄存器 4、5、6、和 7
 第二个 128 位数: 寄存器 8、9、10、和 11。

  ADDS    R0, R4, R8              ; 加低端的字
  ADCS    R1, R5, R9              ; 加下一个字,带进位
  ADCS    R2, R6, R10             ; 加第三个字,带进位
  ADCS    R3, R7, R11             ; 加高端的字,带进位


http://www.mrgr.cn/news/62603.html

相关文章:

  • Golang高级语法-工具链
  • ChinaDX服务:快速部署,灵活调整,满足企业多样需求
  • LinkedList和链表(下)
  • Mongodb使用视图连接两个集合
  • Electron+Vue3+TS+sqlite3项目搭建加入sqlite3后无法运行问题
  • 获取平台Redis各项性能指标
  • 2181、合并零之间的节点
  • YOLOv4和Darknet实现坑洼检测
  • 如何成为一名优秀的程序员,进来看看
  • 网络安全不知道怎么学,看完这篇,中学生都能学会
  • iOS 再谈KVC、 KVO
  • 阿里CDN框架
  • 前端实现echarts折线图堆叠(多条折线)
  • Jupyter notebook 添加目录插件
  • 一致校验矩阵计算
  • kdd比赛方案
  • 基于Python的PostgreSQL数据库操作示例(三)
  • 笔记本双系统win10+Ubuntu 20.04 无法调节亮度亲测解决
  • Istio_04_Istio可观测性
  • 一:Linux学习笔记(第一阶段)-- 安装软件 vmware workstation 虚拟机软件 centos系统
  • vue3使用vite设置 @ 路径别名指向src 目录
  • mac-ubuntu虚拟机(扩容-共享-vmtools)
  • 如何预防Kubernetes安全漏洞
  • 如何创建一个网站?
  • 【hacker送书第14期】AI训练师算法与模型训练从入门到精通
  • 9、node.js和Lowdb