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

相关推荐
ComputerInBook4 小时前
X64 汇编 MOVSD 的两种用法
汇编·汇编指令·movsd
YangWeiminPHD1 天前
金水32051编译器下的AI8051U单片机入门:从点亮LED到“你好,世界,我来了!”
c语言·汇编·51单片机·编译器
九思十安3 天前
HNU2026-计算机系统-笔记 5 汇编进阶
汇编·笔记
九思十安3 天前
HNU2026-计算机系统-笔记 4 汇编初步
汇编·笔记
这猪好帅4 天前
协程原理与实现
汇编
Byron Loong7 天前
【逆向】AT Hook 与 Inline Hook 对比
c语言·汇编·c++
iCxhust9 天前
微机原理课程设计大综合---计数器
汇编·单片机·嵌入式硬件·课程设计·微机原理
xxjj998a10 天前
PHP与汇编:从Web到硬件的编程差异
开发语言·汇编·php
陈eaten11 天前
汇编使用AES指令集实现AES解密
汇编·python·aes解密·aes指令集
顾鉴行思11 天前
10 字符串常量到底存在哪里?
c语言·汇编·经验分享