یکی از دستورات موجود در زبان برنامه نویسی اسمبلی دستور ADD است که از اسمش می توان تشخیص داد چه کاری را انجام می هد.

این دستورالعمل حاصل جمع صحیح دو عملوند خود را محاسبه و نتیجه را در عملوند اول قرار می دهد.

add dest, src

دستورالعمل add محتوای عملوند src را با عملوند dest جمع می کند و نتیجه را در dest ذخیره می کند (dest := dest + src).

دستورالعمل add به شکل های زیر می تواند استفاده شود:

add register, register
add register, memory
add memory, register
add register, immediate data
add memory, immediate data
add AX/AL, immediate data

مثال. دستور زیر محتوای ثبات های AX و BX را جمع کرده و حاصل را در ثبات AX ذخیره می کند.

add AX,BX

فلگ های زیر با توجه به نتیجه دستورالعمل add تاثیر می پذیرند:

• فلگ Overflow اگر یک شوددلالت بر سرریزی در محاسبات علامتدار است.
• فلگ Carry اگر یک شود دلالت بر سرریزی در محاسبات بدون علامت دارد.
• فلگ Sign اگر یک شود نشان می دهد که نتیجه منفی بوده است. یعنی با ارزش ترین بیت عدد یک است.
• فلگ Zero اگر یک شود بیان کننده این است که نتیجه جمع صفر بوده است.
• فلگ Auxiliary Carry شامل سرریزی BCD از نیبل پایین است.
• فلگ Parity با توجه به ۸ بیت پایین نتیجه تغییرمی کند. اگر تعداد بیت های یک نتیجه زوج باشد این فلگ یک می شود. و اگر تعداد فردی بیت ۱ در نتیجه باشد این فلگ صفر می شود.
روی بقیه فلگ ها اثر ندارند.

نکاتی که درمورد دستور mov باید رعایت شود در مورد دستور add نیز صادق است. علاوه بر این که با این دستور نمی توان یک ثبات سگمنت را با مقداری جمع کرد.

وقتی داده فوری با یک عملوند بایت یا کلمه جمع می شود داده فوری به اندازه عملوند گسترش پیدا می کند.

چون جمع حافظه و حافظه وجود ندارد اگر بخواهید دو متغیر را با هم جمع کنید باید عملوندهای حافظه را در ثبات ها منتقل کنید.

مثال. یک حالت ممکن برای انجام عمل جمع متغیرها به صورت J := K + M + N + P; می تواند به شکل زیر باشد:

mov BX, K
mov AX, M
add BX, N
add AX, P
add AX, BX
mov J, AX

مثال. می توان یک ثبات را با محلی از حافظه جمع کرد. اجباری نیست که هردو عملوند ثبات باشد.

mov AX, K
add J, AX

مثال. می توان یک مقدار ثابت را با حافظه جمع کرد.

add J, 2