It's the value of the carry flag before the addition that is relevant. ADDC
includes it in the sum while ADD
doesn't.
ADDC X, Y
stores X + Y + Carry in X
.
ADD
only stores X + Y in X
.
The purpose of this is to allow chained addition on multi-word "big integers." This is accomplished by adding each word from least to most significant. Using ADDC ensures that carries from previous additions are carried to the next-higher significant word.