当前位置:新励学网 > 秒知问答 > 为什么高位数相加要用addc

为什么高位数相加要用addc

发表时间:2024-07-28 14:02:46 来源:网友投稿

这是51单片机的一条加法指令,可以完成带进位Cy的加法运算。

指令的形式是:ADDC A ,源操作数,加法是在A 中完成的,加法计算时的两个数一个数是A 中原有的数,另一个数即是源操作数,同时连同进位Cy一起加进来。

还是举例说明吧:如计算56A8H+2368H,这么写程序:

MOV A , #0A8H;先把第一个数的低8位A8H送A

ADD A , #68H;与另一个数的低8位相加,即A(A8H)+68H,加法结果是A=10H,因结果超过了255(FFH)则进位Cy=1,即结果是110H

MOV30H, A ;把低8位结果送到30H单元保存起来

MOVA , #56H ;再把第一个数的高8位送A,准备计算高8位数

ADDC A,#23H ;与另一个数的高8位相加,这时要同时把低8位的进位Cy=1加进来,即A(56H)+23H+1(因Cy1),则A=7AH,

MOV 31H, A;最后将高8位的计算结果送到31H单元保存。最终结果是7A10H,这必须要计算两次,也要用两个单元来保存。

如上可见先计算低8位时,用ADD,是不带进位,因低8位加时还没有进位,而计算高8位时,就必须带进位的加法了,必须用ADDC了,因低8位加时有进位,假如没有进位,也要用ADDC,但这时的Cy=0,加上0就是低8位没有进位。

还有一种情况是多个8位数相加,因相加的结果超过了8位数(255),所以每一次加法也必须用带进位加法计算,即必须用ADDC了。

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!