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

相关推荐
一品人家2 天前
win32汇编环境,得到当前日期时间的例子
汇编
试试看1682 天前
自制操作系统第三天
汇编·系统架构
0xCC说逆向5 天前
Windows逆向工程入门之汇编位运算
c语言·汇编·windows·安全·逆向
矮油0_o5 天前
30天开发操作系统 第 20 天 -- API
c语言·汇编·操作系统
charlie1145141915 天前
从0开始的操作系统手搓教程 4:做好准备,跳到加载器(Loader)
汇编·学习·操作系统·调试·mbr·手搓教程·bochs
官子无敌刘小路8 天前
汇编简介&常用语法
汇编
二进制怪兽11 天前
[笔记] 汇编杂记(持续更新)
汇编
bae-唯一12 天前
关于32位和64位程序的传参方法及虚拟机调试工具总结
汇编·学习
E_han13 天前
7.list
开发语言·汇编·数据结构·c++·算法·list
二进制怪兽13 天前
[笔记] x86汇编语言:从实模式到保护模式之第一章 十六进制计数法
汇编