单片机的带借位减法
单片机中用到带借位的减法是使计算正确对吧,那么如果cy=1,SUBB#09H,#05H结果不就是03H了吗,这不错了吗。是不是先要置cy=0呢?到底要不要借位呢,那个减去...
单片机中用到带借位的减法是使计算正确对吧,那么如果cy=1,SUBB #09H,#05H结果不就是03H了吗,这不错了吗。是不是先要置cy=0呢?到底要不要借位呢,那个减去cy又是啥意思呢?请大神们赐教,不胜感激。
展开
3个回答
展开全部
单片机中用到带借位的减法是为了进行多字节的减法运算,在进行高位字节运算时,要同时减去低位字节的借位,以得到正确的结果。
如果cy=1,SUBB #09H,#05H 结果是03H 不是很正确噢
首先你的指令是非法指令,计算机、单片机中的立即数是不能做目的操作数的,目的操作数是要保存结果的,而立即数是不能保存结果的。
要想完成你的运算想法,应该写成如下形式:
MOV A,#9
SETB C
SUBB A,#5
即执行后: (A)-5-cy=9-5-1=3
结果为03H是正确的。
在进行最低字节的减法运算时,即刚开始做减法,还没有产生借位,应在运算前使cy=0
即 CLR C
MOV A,#DATA1
SUBB A,#DATA2
执行时, (A)-DATA2-cy=DATA1-DATA2-0
呵呵 满意 就选满意回答
如果cy=1,SUBB #09H,#05H 结果是03H 不是很正确噢
首先你的指令是非法指令,计算机、单片机中的立即数是不能做目的操作数的,目的操作数是要保存结果的,而立即数是不能保存结果的。
要想完成你的运算想法,应该写成如下形式:
MOV A,#9
SETB C
SUBB A,#5
即执行后: (A)-5-cy=9-5-1=3
结果为03H是正确的。
在进行最低字节的减法运算时,即刚开始做减法,还没有产生借位,应在运算前使cy=0
即 CLR C
MOV A,#DATA1
SUBB A,#DATA2
执行时, (A)-DATA2-cy=DATA1-DATA2-0
呵呵 满意 就选满意回答
展开全部
这个借位一般是多字节计算使用的,单字节最好先清掉CY。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cy=1,SUBB #09H,#05H,相当于256+9-5=260,其实也就是4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询