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

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.kler.cn/a/373639.html

相关文章:

  • 基于微信小程序实现信阳毛尖茶叶商城系统设计与实现
  • etcd 备份还原
  • 得物App 3D球鞋博物馆亮相两博会,打造沉浸式消费新体验
  • 【应用日志】logback-spring配置详细说明
  • Spring自动装配(特别版)
  • TDengine 数据订阅 vs. InfluxDB 数据订阅:谁更胜一筹?
  • 基于LORA的一主多从监测系统_4G模块上巴法云
  • 哈希函数简介
  • 全局数据在Python包中模块间管理方法探讨
  • 红警之家进不去
  • Ribbon的轮询策略实现方法
  • 把握鸿蒙生态机遇,共创智能应用未来
  • shell基础-for\while\break
  • 使用Scrapy框架爬取博客信息
  • 深度学习:梯度下降算法简介
  • Spring学习笔记_16——@Inject
  • Es可视化界面 ElasticHd
  • 杂货 | 每日资讯 | 2024.10.31
  • 远程工作时代的文件安全管理挑战与机遇
  • 尚硅谷-react教程-求和案例-优化2-Provider组件的使用-笔记
  • 用ChatGPT提升工作效率:从理论到实际应用
  • 贪心算法入门(一)
  • axios post请求body为字符串时的解决方法
  • 数理逻辑/逻辑哲学 小记
  • 【算法】【优选算法】双指针(上)
  • 鸿蒙开发融云demo发送图片消息