Команда add осуществляет сложение первого и второго операндов. Исходное значение первого операнда (приемника) теряется, замещаясь результатом сложения. Второй операнд не изменяется. В качестве первого операнда команды add можно указывать регистр (кроме сегментного) или ячейку памяти, в качестве второго - регистр (кроме сегментного), ячей-ку памяти или непосредственное значение, однако не допускается опре-делять оба операнда одновременно как ячейки памяти. Операнды могут быть байтами или словами и представлять числа со знаком или без знака. Команду add можно использовать для сложения как обычных целых чи-сел, так и двоично-десятичных (с использованием регистра АХ для хра-нения результата). Если складываются неупакованные двоично- десятич-ные (BCD) числа, после команды add следует использовать команду ааа; если складываются упакованные числа, то команду daa. Команда воздействует на флаги OF, SF, ZF, AF, PF и CF.

Пример 1


mov BX,lFFEh

mov CX,3

add BX,CX ;BX=2001h, CX=0003h

Пример 2


mov AX,25h

add AX,12h ;AX=0037h

Пример 3


; В полях данных:

mem dw 128

;B программном сегменте:

add mem,100 ;mem=228

Пример 4


mov AX,0507h ;BCD распакованное 57

 add AL,05h ;BCD 5, AX=050Ch 

aaa ;AX=0602h, BCD 62

 

Пример 5


mov AL,57h ;BCD упакованное 57

 add AL,05h ;BCD 5, AL=5Ch 

daa ;AL=62h, BCD 62

 Допустимо использование 32-битовых операндов и дополнительных режимов адресации 32-разрядных процессоров.

Пример


mov EAX,98765432h

add EAX,11111111h ; EAX=A9876543h