百科狗-知识改变命运!
--

汇编语言,想知道ADD和ADDC的具体区别,最好有例子可是说明,不明白这个进位是怎么算的。

桃子11个月前 (12-23)阅读数 4#综合百科
文章标签加法被加数

ADD 两数相加,不加进位位。

ADDC 两数相加,同时再加个进位位。进位当时为1就加1 为0就加0相当于不加

一般用在多字节数相加中。最低位相加,用ADD ,加完后,可能产生进位,高字节相加就用ADDC

这样,低字节相加产生的进位就会被加进来。

比如 0080H + 0180H

低字节相加用 ADD

80H+80H=100H 用ADD指令得到 00H 并溢出产生进位 C=1

汇编语言,想知道ADD和ADDC的具体区别,最好有例子可是说明,不明白这个进位是怎么算的。

高字节 相加用 ADDC

00H+01H=01H 用 ADDC 指令两数相加结果 01H会再加上进位位 1 得到 02H

0080H+0180H = 02 00H

再比如

0080H + 0101H

80H+01H = 81H 没有溢出进位为 C=0

00H+01H =01H 用ADDC指令会 再加进位位 C=0 得到 01H

结果 0080H+0101H = 0181H

字数据指的是16位的,双字数据指的是32位的。

=============================================

在16位机中,字加法可用ADD一次完成,双字加法需要两次。

一般:

16位加法:

MOV AX,被加数

ADD AX,加数

32位加法:

MOV AX,被加数低16位

ADD AX,加数低16位

MOV DX,被加数高16位

ADC DX,加数高16位 ;考虑上面的进位,用带进位加法指令

-------------------------------

在32位机中,字加法可用ADD一次完成,双字加法也可用ADD完成,但需要32位加法指令。

16位加法:

MOV AX,被加数

ADD AX,加数

32位加法:

MOV EAX,被加数32位

ADD EAX,加数32位

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)