当前位置: 首页 > 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

相关文章:

  • acwing-3194 最大的矩形
  • HTML5实现好看的端午节网页源码
  • js:正则表达式
  • Cline(原Claude Dev)开源的IDE AI插件,如何搭配OpenRouter实现cursor功能,Cline怎么使用
  • qt 快捷功能 快速生成 setter getter 构造函数 父类虚函数重写 成员函数实现 代码框架 查看父类及父类中的虚函数
  • TypeScript 爬虫项目实战:抓取豆瓣电影 Top 250(TypeScript简单应用)
  • 基于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发送图片消息