add

Sizes

byte, word, long

Default Size

word

Affected Flags

X
N
Z
V
C
✱
✱
✱
✱
✱

Operands

Op 1
Dn/An/(An)/d(An)/d(An,Xn)/Ea/<label>/d(PC)/d(PC,Xn)/Im
Op 2
Dn/An/(An)/d(An)/d(An,Xn)/Ea/<label>

Adds the value of the first operand to second operand. If the second operand is an address register, the ADDA instruction is used instead.

* --- Different sizes ---
move.l #$FF, d0
add.b #$01, d0 ; only affects low byte

move.l #$10000, d1
add.w #$FFFF, d1 ; only affects low word

move.l #$10000000, d2
add.l #$F0000000, d2 ; carry flag set

* --- Overflow: signed result changes sign ---
move.l #$7F, d3
add.b #$01, d3 ; $80, V flag set