adda
Add address
Adds the first operand to an address register, sign extending a word to long and leaving sr unchanged.
Sizes .w .l, .w by default
XNZVC –––––
- Changes no flag
Forms
Operands
<ea>- An operand using one of the instruction’s supported addressing modes, such as
d0,(a0)+or4(a1). It may name a register, memory or an immediate value. More An- An address register,
a0toa7;spis another name fora7. More #imm- An immediate value written after
#: a number, character or label, such as#10,#$FFor#'a'. It must fit the operation’s size: byte-128to255, word-32768to65535, or long-2147483648to4294967295; signed and unsigned spellings are accepted. More
It does not change the SR. When using word size, the first operand is sign extended to long and the second is read and written as a long.
* --- Word is sign-extended before adding ---
move.l #$10000, a0
adda.w #$FFFE, a0 ; $FFFE sign-extends to $FFFFFFFE (-2)
* --- Long adds as-is ---
move.l #$10000, a1
adda.l #$10000, a1
* --- Does NOT affect flags (compare with add) ---
move.l #$10000, d0
move.l #$10000, a2
add.l #$F0000000, d0 ; carry set
adda.l #$F0000000, a2 ; flags unchanged