
单片机里的加法进位等等问题
在单片机里的加法指令中,如果有进位了,则CY=1,否则为0。举个例子:FFH+FFH加完了结果是什么(1EFH么),当发生进位的时候如果CY里的数“置1”的话,下次在执行...
在单片机里的加法指令中,如果有进位了,则CY=1,否则为0。举个例子:FFH+FFH加完了结果是什么(1EFH么),当发生进位的时候如果CY里的数“置1”的话,下次在执行别的加法运算的时候,又会有改动,那么FFH+FFH的结果不就不正确了么。我是刚刚开始单片机学习的。所以请大家不要笑我提出这么幼稚的问题。
我就是不明白AC OV CY 这几个标志位置0和置1之后,下一次再操作的时候这几个标志位的数值又发生变化了,那么之前的算数进位放在哪里了?谢谢大家了。还有一个问题就是我不知道为什么我的分数还有,可是系统却提示分数不够,不让送分。 展开
我就是不明白AC OV CY 这几个标志位置0和置1之后,下一次再操作的时候这几个标志位的数值又发生变化了,那么之前的算数进位放在哪里了?谢谢大家了。还有一个问题就是我不知道为什么我的分数还有,可是系统却提示分数不够,不让送分。 展开
展开全部
具体情况要看单片机的种类和它支持的指令了
比如既有ADD, 也有ADC(或ADDC),则ADD时,与之前的状态无关,而ADC,则会把C加进去.而有的单片机只有ADC,那就要注意了,如果不希望以前有影响,就要自已清除标志.
你只要反复看指令的说明和举例,就会弄懂的
比如既有ADD, 也有ADC(或ADDC),则ADD时,与之前的状态无关,而ADC,则会把C加进去.而有的单片机只有ADC,那就要注意了,如果不希望以前有影响,就要自已清除标志.
你只要反复看指令的说明和举例,就会弄懂的
展开全部
这些标志位是需要用软件(手动)去处理的。
比如说CY位,每当你执行过加法运算后,都应当判断CY位是否为1,来确定当前加法的正确结果,如果这个结果在后面要用到,这个时候还要找适当的位置把这个结果存储起来。
FFH+FFH的结果包含两个部分,FEH和CY中的1,存储这个结果(1FEH)是要自己去做的,单片机只会保证当前是正确的。
比如说CY位,每当你执行过加法运算后,都应当判断CY位是否为1,来确定当前加法的正确结果,如果这个结果在后面要用到,这个时候还要找适当的位置把这个结果存储起来。
FFH+FFH的结果包含两个部分,FEH和CY中的1,存储这个结果(1FEH)是要自己去做的,单片机只会保证当前是正确的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你每次加完毕之后需要理解出来 CY, OV 等,要不然就出错了!
OV 为1则为溢出了
CY 为1 则就有进位了
OV 为1则为溢出了
CY 为1 则就有进位了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询