0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

add和addc的区别

分享:

add(加法指令)和 addc (通常表示为 adc,即 Add with Carry)是计算机体系结构和汇编语言中的两种基本指令,主要用于处理多精度算术运算(即处理比CPU原生字长更大的数字)。它们的核心区别在于是否将前一次运算产生的进位标志(Carry Flag, CF)纳入当前加法运算中

以下是详细对比:

特性 add (加法) adc (带进位加法)
中文全称 加法 带进位加法
核心功能 将两个操作数相加 将两个操作数相加 并加上进位标志(CF)
进位处理 忽略进位标志CF 显式使用进位标志CF作为加数的一部分
运算公式 目标操作数 = 操作数1 + 操作数2 目标操作数 = 操作数1 + 操作数2 + CF
影响标志位 设置进位标志(CF)、溢出标志(OF)、零标志(ZF)等 add,但CF是输入也是输出
典型应用场景 单字长(如32位)加法 多精度加法(如64位、128位数的运算)

关键区别详解:

  1. add (普通加法)

    • 执行标准的二进制加法:A = B + C
    • 不关心之前操作留下的进位标志(CF)。
    • 根据本次加法的结果设置新的标志位(包括新的CF)。
    • 用途:计算单个机器字(如32位或64位)内的加法。
  2. adc (带进位加法)

    • 执行加法:A = B + C + CF (其中 CF当前进位标志的值)。
    • 显式地将前一次操作(通常是上一次addadc)产生的进位(CF)作为第三个操作数加到本次运算中。
    • 根据 B + C + CF 的结果设置新的标志位(包括新的CF)。
    • 核心用途实现多精度加法。当数字太大,无法用一个机器字(如32位)表示时,需要拆分成多个字(如低位字、高位字)进行运算。adc用于将低字加法产生的进位传递到高字加法中。

实际应用示例(32位CPU上实现64位加法):

假设有两个64位数字:

  • 低32位:Num1_Low, Num2_Low
  • 高32位:Num1_High, Num2_High

目标:计算 Result = Num1 + Num2(64位结果)。

; 第一步:使用 add 计算低32位的和,并产生进位(CF)
add  eax, Num1_Low ; eax = Num1_Low
add  eax, Num2_Low ; eax = Num1_Low + Num2_Low, 结果影响CF

; 此时 CF 记录了低32位相加是否产生了进位 (1表示有进位,0表示无)

; 第二步:使用 adc 计算高32位的和,并加上低32位产生的进位(CF)
mov  ebx, Num1_High ; ebx = Num1_High
adc  ebx, Num2_High ; ebx = Num1_High + Num2_High + CF

; 最终结果:
; 低32位在 eax 中
; 高32位在 ebx 中
; (ebx:eax 组合形成64位结果)

总结:

指令 核心作用 进位处理 关键应用领域
add 执行标准的二进制加法 忽略输入CF,输出新CF 单字长算术运算
adc 执行加法并显式加入进位标志(CF) 将输入CF作为加数,输出新CF 多精度大数运算

简单来说:

  • add 是做一次“独立”的加法。
  • adc 是做一次“链式”的加法,它把上一次加法可能产生的“进位”也一起加进去,用于连接多个字长的运算。

理解 addadc(尤其是 adc)对于进行底层编程、优化算法(如大数库、加密算法)和理解CPU如何工作至关重要。

单片机ADDADDC有哪些不同之处呢

单片机基础之ADDADDC区别详解ADD 两数相加,不加进位位。ADDC 两数相加,加进位位。进位当时为1就加1,进位为0就加0。一般在多字节数相加时,低字节相加用ADD ,高字节相加就用

yu1004402274 2022-02-16 06:00:08

PCB的Add layer和Plane有什么区别

1、Add layer:添加中间层。中间层可以作为走线来用,和普通的信号层没有什么区别,只是走线在内部了。是正片腐蚀。

weierda 2019-07-22 07:41:02

UVM中add_typewide_sequence和add_sequence的区别

第2和第3种方式类似,第3种是一下子添加多个sequence,它内部原理就是调用第2种的函数,因此在本质上,只有第1和第2种这两类区别

2023-05-24 15:21:25

ADDC02805SAKV

ADDC02805SAKV - 28 V/66 W/100 W DC/DC Converters with Integral EMI Filter - Analog Devices

2022-11-04 17:22:44

ADDC02805SA

ADDC02805SA - 28 V/66 W/100 W DC/DC Converters with Integral EMI Filter - Analog Devices

2022-11-04 17:22:44

ADDC02812DA

ADDC02812DA - 28 V/100 W DC/DC Converters with Integral EMI Filter - Analog Devices

2022-11-04 17:22:44

ADDC02815DATV

ADDC02815DATV - 28 V/100 W DC/DC Converters with Integral EMI Filter - Analog Devices

2022-11-04 17:22:44

AS7024_ADD-ON BOARD

AS7024_ADD-ON BOARD

2023-10-11 11:20:46

NT90H1ADDC3V

NT90H1ADDC3V - Suitable for automobile, machine, electronic equipment, air conditioner and household appliances applications - DB Lectro Inc

2022-11-04 17:22:44

NT90N1ADDC5V

NT90N1ADDC5V - Suitable for automobile, machine, electronic equipment, air conditioner and household appliances applications - DB Lectro Inc

2022-11-04 17:22:44

ADD加法指令相关资料分享

ADD 指令将< shifter_operand > 表示的数据与寄存器< Rn >中的值相加,并把结果保存到目标寄存器< Rd > 中,同时根据操作的结果更新

ROSE1017 2021-12-22 08:02:44

ADD5043-433-2-GEVK

ADD-ON KIT FOR DVK-2

2023-03-29 19:42:43

MT6501GT-ADD

MT6501GT-ADD

2023-04-06 23:32:50

ADD5043-169-2-GEVK

ADD-ON KIT FOR DVK-2

2023-03-29 19:43:24

MT6501GT-ADD

MT6501GT-ADD

2023-03-28 18:08:00

ADD5043-868-2-GEVK

ADD-ON KIT FOR DVK-2

2023-03-29 19:44:16

EM35X-NCP-ADD-ON-S

EM35X ADD ON KIT

2023-03-29 19:45:23

ADD5051-868-2-GEVK

ADD-ON KIT FOR DVK-2

2023-03-29 19:43:24

NT90N1ADDC15V

NT90N1ADDC15V - Suitable for automobile, machine, electronic equipment, air conditioner and household appliances applications - DB Lectro Inc

2022-11-04 17:22:44

NT90N1ADDC18V

NT90N1ADDC18V - Suitable for automobile, machine, electronic equipment, air conditioner and household appliances applications - DB Lectro Inc

2022-11-04 17:22:44

NT90RN1ADDC3V

NT90RN1ADDC3V - Suitable for automobile, machine, electronic equipment, air conditioner and household appliances applications - DB Lectro Inc

2022-11-04 17:22:44

55W双输出电池充电器(USP功能)ADD - 55系列技术解析

55W双输出电池充电器(USP功能)ADD - 55系列技术解析 一、产品概述 ADD - 55系列是一款具备55W双输出且带有电池充电器(USP功能)的电源产品。它拥有多项实用特性,适用于多种

2026-04-04 14:30:03

NT90N1ADDC24V

NT90N1ADDC24V - Suitable for automobile, machine, electronic equipment, air conditioner and household appliances applications - DB Lectro Inc

2022-11-04 17:22:44

NT90RN1ADDC5V

NT90RN1ADDC5V - Suitable for automobile, machine, electronic equipment, air conditioner and household appliances applications - DB Lectro Inc

2022-11-04 17:22:44

NT90RN1ADDC6V

NT90RN1ADDC6V - Suitable for automobile, machine, electronic equipment, air conditioner and household appliances applications - DB Lectro Inc

2022-11-04 17:22:44

AD解决ADD Component Classes出错的解决方法

解决ADD Component Classes出错的问题。提示是Failed to add class member:xxx 和 Unknown Pin

du21590 2019-07-05 08:30:08

NT90H1ADDC15V

NT90H1ADDC15V - Suitable for automobile, machine, electronic equipment, air conditioner and household appliances applications - DB Lectro Inc

2022-11-04 17:22:44

NT90RH1ADDC9V

NT90RH1ADDC9V - Suitable for automobile, machine, electronic equipment, air conditioner and household appliances applications - DB Lectro Inc

2022-11-04 17:22:44

ADD597监测和测向一体化天线系统的关键特性

近日,罗德与施瓦茨(以下简称“R&S”公司)宣布推出全新高性能ADD597 监测和测向一体化天线系统。该系统是固定、移动和可搬移式频谱监测站的关键组件。ADD597可结合单通道测向机,组成

2022-06-22 16:25:32

加载更多
相关标签