dest = dest + source
The add instruction adds the source value (second operand) to the destination (either a register or a memory location). The destination can be a 64, 32, 16 or 8 bit register or memory location. The source can be either a register, memory location or an immediate value. You can not use 2 memory addresses. You can add either 8, 16 or 32 bit immediate values to larger registers and the immediate value will be sign extended.
add rax, rdx ; add rdx to rax add r8, 10 ; add 10 to r8 add r8, [x] ; add 64 bit value of x to r8 add r8d, [x] ; add 32 bit value of x to r8d ; top half of r8 will be set to 0 add r8w, [x] ; add 16 bit value of x to r8w ; top 3/4 of r8 will be unchanged add [x], rax ; add rax to 64 bit variable x add dword [x], 2 ; add 2 to 32 bit variable x ; must specify qword, dword, word or byte