
单片机加法add和addc到底是怎样运算的?
比如:MOVA,#25HA=?MOV40H,#1AH40H=?MOVR2,#33HR2=?CLRCC=?ADDA,R2A=?ADDCA,40HA=?MOVR0,#40HR...
比如:MOV A,#25H A=?
MOV 40H, #1AH 40H=?
MOV R2,#33H R2=?
CLR C C=?
ADD A,R2 A=?
ADDC A,40H A=?
MOV R0,#40H R0=?
ADDC A, @RO A=? 最关键的ADD和ADDC怎么算的? 希望高手能够说得详细 易懂点! 谢谢 展开
MOV 40H, #1AH 40H=?
MOV R2,#33H R2=?
CLR C C=?
ADD A,R2 A=?
ADDC A,40H A=?
MOV R0,#40H R0=?
ADDC A, @RO A=? 最关键的ADD和ADDC怎么算的? 希望高手能够说得详细 易懂点! 谢谢 展开
1个回答
展开全部
ADD只是两个数相加,忽略以前加法运算的进位。
ADDC把进位也算进去了
你给的程序
MOV A,#25H A=?将0x25给寄存器A
MOV 40H, #1AH 40H=?将0x1a给ram中地址0x40所对应的空间
MOV R2,#33H R2=? 将0x33给R2寄存器
CLR C C=? 清除C
ADD A,R2 A=? A和R2相加,0x25+0x33=0x58,并不产生进位,此时A为0x58
ADDC A,40H A=? A和地址为0x40的数相加,0x58+0x1a+0x0=0x72(前面并没有进位);也没有进位
MOV R0,#40H R0=? 将0x40给R0寄存器
ADDC A, @RO A=? 这一举和ADDC A,40H是一样的。0x72+0x1a+0x0=0x8c
,还是没有进位
ADDC把进位也算进去了
你给的程序
MOV A,#25H A=?将0x25给寄存器A
MOV 40H, #1AH 40H=?将0x1a给ram中地址0x40所对应的空间
MOV R2,#33H R2=? 将0x33给R2寄存器
CLR C C=? 清除C
ADD A,R2 A=? A和R2相加,0x25+0x33=0x58,并不产生进位,此时A为0x58
ADDC A,40H A=? A和地址为0x40的数相加,0x58+0x1a+0x0=0x72(前面并没有进位);也没有进位
MOV R0,#40H R0=? 将0x40给R0寄存器
ADDC A, @RO A=? 这一举和ADDC A,40H是一样的。0x72+0x1a+0x0=0x8c
,还是没有进位
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询