单片机加法add和addc到底是怎样运算的?

来源:百度知道 编辑:UC知道 时间:2024/06/08 01:12:47
比如: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怎么算的? 希望高手能够说得详细 易懂点! 谢谢

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
,还是没有进位