The values of the two operands are added together, and the result is written back to the first one.


add a,op8        ;8 bits
add op16,op16    ;16 bits

Allowed instructions

add a,a
add a,b
add a,c
add a,d
add a,e
add a,h
add a,l
add a,ixh
add a,ixl
add a,iyh
add a,ixl
add a,(hl)
add a,(ix+n)
add a,(iy+n)
add a,n        ;8-bit constant

add hl,bc
add hl,de
add hl,hl
add hl,sp

add ix,bc
add ix,de
add ix,ix
add ix,sp

add iy,bc
add iy,de
add iy,iy
add iy,sp


8-bit arithmetic

N flag is reset, P/V is interpreted as overflow.
Rest of the flags is modified by definition.

16-bit arithmetic

preserves the S, Z and P/V flags, and H is undefined.
Rest of flags modified by definition.


Obviously used to add two numbers together. However, you can add 16-bit numbers to sp, giving you control of where the stack pointer is pointing to.


r denotes 8-bit register.
rr represents a two byte register pair: BC, DE, HL, SP

r 4
X 7
(hl) 7
(ix+X) 19
(iy+X) 19
hl, rr 11
ix, rr 15
iy, rr 15

See Also


Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.