您的位置 首页 资料

51单片机汇编语言带进位加法指令

带进位加法指令(4条)这4条指令除与[1]功能相同外,在进行加法运算时还需考虑进位问题。ADDCA,data;(A)+(data)+(C)rarr;(A)

带进位加法指令(4条)
这4条指令除与[1]功用相同外,在进行加法运算时还需考虑进位问题。

ADDC A,data ;(A)+(data)+(C)→(A) 累加器A中的内容与直接地址单元的内容连同进位位相加,成果存在A中
ADDC A,#data ;(A)+#data +(C)→(A) 累加器A中的内容与当即数连同进位位相加,成果存在A中

ADDC A,Rn ;(A)+Rn+(C)→(A) 累加器A中的内容与作业寄存器Rn中的内容、连同进位位相加,成果存在A中
ADDC A,@Ri ;(A)+((Ri))+(C)→(A) 累加器A中的内容与作业寄存器Ri指向地址单元中的内容、连同进位位相加,成果存在A中用处:将A中的值和这以后面的值相加,而且加上进位位C中的值。

阐明:因为51单片机是一种8位机,所以只能做8位的数学运算,但8位的运算规模只要0-255,这在实践作业中是不行的,因而就要进行扩展,一般是将2个8位的数学运算合起来,成为一个16位的运算,这样,能够表达的数的规模就能够抵达0-65535。怎么兼并呢?其实很简单,让咱们看一个十进制数的比如吧:

66+78
这两个数相加,咱们底子不在意这个进程,但事实上咱们是这样做的:先做6+8(低位),然后再做6+7,这是高位。做了两次加法,仅仅咱们做的时分并没有故意分红两次加法来做算了,或者说咱们并没有意识到咱们做了两次加法。之所以要分红两次来做,是因为这两个数超过了一位数所能表达的规模(0-9)。

在做低位时产生了进位,咱们做的时分是在恰当的方位点一下,然后在做高位加法时将这一点加进去。那么计算机中做16位加法时相同如此,先做低8位的,假如两数相加后产生了进位,也要“点一下”做个符号,这个符号上任进位位C,在程序状态字PSW中。在进行高位加法是将这个C加进去。

例如:1067H+10A0H,先做67H+A0H=107H,而107H明显超过了0FFH,因而,终究保存在A中的数是7,而1则到了PSW中的CY位了,换言之,CY就相当于100H。然后再做10H+10H+CY,成果是21H,所以终究的成果是2107H。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/319228.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部