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 = Xn;

bits(datasize) operand2 = Xm;

(result, -) = AddWithCarry(operand1, operand2, PSTATE.C);

Xd = 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 ; 加高端的字,带进位

相关推荐
学逆向的6 小时前
汇编——数据存储模式
开发语言·汇编·网络安全
学逆向的1 天前
汇编——内存
开发语言·汇编·算法·网络安全
学逆向的1 天前
汇编——位运算
开发语言·汇编·算法·网络安全
hai3152475431 天前
九章编译法----空间几何统一编译法
网络·汇编·人工智能·线性代数
想你依然心痛3 天前
自定义RTOS内核:从零实现上下文切换与任务调度——汇编、PendSV
java·开发语言·汇编·pendsv
hai3152475433 天前
九章空间几何对照直译法:通用芯片 / 定制专用芯片 编译适配规则
linux·汇编·bash
JAVA面经实录9175 天前
Linux 常用命令完整知识体系
java·linux·开发语言·汇编
ThornArmor25 天前
【工具篇·番外】跨语言生态的主权回收:基于 ISA 说明书的 4-bit 双向汇编系统全线封顶
c语言·开发语言·汇编·c++·重构·架构
是星辰吖~25 天前
WIN32_线程(下)
汇编
是星辰吖~25 天前
WIN32_线程(上)
汇编