为什么高位数相加要用addc
这是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了。
免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!
新励学网教育平台
海量全面 · 详细解读 · 快捷可靠
累积科普文章数:18,862,126篇