Команда add осуществляет сложение первого и второго операндов. Исходное значение первого операнда (приемника) теряется, замещаясь результатом сложения. Второй операнд не изменяется. В качестве первого операнда команды add можно указывать регистр (кроме сегментного) или ячейку памяти, в качестве второго - регистр (кроме сегментного), ячей-ку памяти или непосредственное значение, однако не допускается опре-делять оба операнда одновременно как ячейки памяти. Операнды могут быть байтами или словами и представлять числа со знаком или без знака. Команду add можно использовать для сложения как обычных целых чи-сел, так и двоично-десятичных (с использованием регистра АХ для хра-нения результата). Если складываются неупакованные двоично- десятич-ные (BCD) числа, после команды add следует использовать команду ааа; если складываются упакованные числа, то команду daa. Команда воздействует на флаги OF, SF, ZF, AF, PF и CF.
Пример 1
mov BX,lFFEhmov CX,3
add BX,CX ;BX=2001h, CX=0003h
Пример 2
mov AX,25hadd AX,12h ;AX=0037h
Пример 3
; В полях данных:mem dw 128
;B программном сегменте:
add mem,100 ;mem=228
Пример 4
mov AX,0507h ;BCD распакованное 57add AL,05h ;BCD 5, AX=050Ch
aaa ;AX=0602h, BCD 62
Пример 5
mov AL,57h ;BCD упакованное 57add AL,05h ;BCD 5, AL=5Ch
daa ;AL=62h, BCD 62
Допустимо использование 32-битовых операндов и дополнительных режимов адресации 32-разрядных процессоров.
Пример
mov EAX,98765432hadd EAX,11111111h ; EAX=A9876543h