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

相关推荐
我在人间贩卖青春11 天前
汇编之伪指令
汇编·伪指令
我在人间贩卖青春12 天前
汇编之伪操作
汇编·伪操作
济61712 天前
FreeRTOS基础--堆栈概念与汇编指令实战解析
汇编·嵌入式·freertos
myloveasuka12 天前
汇编TEST指令
汇编
我在人间贩卖青春12 天前
汇编编程驱动LED
汇编·点亮led
我在人间贩卖青春12 天前
汇编和C编程相互调用
汇编·混合编程
myloveasuka13 天前
寻址方式笔记
汇编·笔记·计算机组成原理
请输入蚊子13 天前
《操作系统真象还原》 第六章 完善内核
linux·汇编·操作系统·bochs·操作系统真像还原
myloveasuka13 天前
指令格式举例
汇编·笔记·计算机组成原理
我在人间贩卖青春14 天前
汇编之分支跳转指令
汇编·arm·分支跳转