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

相关推荐
日更嵌入式的打工仔3 天前
汇编与反汇编
汇编
oioihoii8 天前
从汇编角度看C++优化:编译器真正做了什么
java·汇编·c++
CHANG_THE_WORLD8 天前
函数简单传入参数的汇编分析
汇编·c++·算法
GHL2842710909 天前
i++汇编学习
汇编·学习
iCxhust9 天前
Intel8259汇编串口接收转C语言
c语言·开发语言·汇编
东亚_劲夫9 天前
汇编和反汇编
汇编
无名J0kзr12 天前
汇编:语法速通
汇编
月盈缺16 天前
学习嵌入式的第三十九天——ARM——汇编
汇编·arm开发·学习
7hhhhhhh17 天前
自学嵌入式第四十四天:汇编
汇编
出门吃三碗饭17 天前
编译器构造:从零手写汇编与反汇编程序(二)
汇编·人工智能·机器学习