汇编语言中 加法(ADD)与带进位加法(ADC)有什么区别?

如题所述

加法(ADD)和带进位加法(ADC)最大的区别就是,ADC除了完成ADD加法指令运算,还必须和加进位标志位相加,才能得到最终计算结果。

加法(ADD)功能是实现两个操作数相加,其结果送至目的操作数,源操作数不变。两个操作数不能同时为存储器寻址方式。

带进位加法(ADC)指令主要用于与ADD指令相结合实现多字节数相加。对操作数的要求也与add指令一样。运算结果对PSW(程序状态字)有影响。

共有四种寻址方式:立即寻址、直接寻址、寄存器寻址和寄存器间接寻址。

扩展资料

逻辑运算指令:

这部分指令用于执行算术和逻辑运算,包括加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC;

比较操作指令CMP、乘法指令MUL/IMUL、除法指令DIV/IDIV;

符号扩展指令CBW/CWDE/CDQE、十进制调整指令DAA/DAS/AAA/AAS、逻辑运算NOT/AND/OR/XOR/TEST等。

参考资料来源:百度百科--加法指令

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
ADD 是求两个指定整数的和,而 ADC 除了两个指定整数以外,还会加上 C(进位)状态的值。需要 ADC 指令,是因为如果要加的整数长于微处理器每次能加的位元数,就要分开来加,高位字节的结果取决于低位字节相加时有没有进位。 举例:假如有8位元微处理器每次只能加一个字节,如果我们要加两个 16 位元整数:00110101 11001010 + 00010100 01111101 先用 ADD 加 11001010 和 01111101,得 01000111,有进位,状态 C 设为 1再用 ADC 加 00110101 和 00010100 和 状态C(现在是1),得 01001010 所以和是 01001010 01000111本回答被网友采纳
第2个回答  2012-04-10
就是考虑不考虑CF的区别,简单说吧ADD是把2个数加起来,ADC是2个数加起来再加CF,CF是溢出标志位
如果你有一定的硬件知识的话,ADD就是半加器,ADC就是全加器
相似回答