Сложение и вычитание. add и sub

Последнее обновление: 01.07.2023

Инструкция add выполняет сложение двух операндов, а инструкция sub - вычитание. Они имеют следующий синтаксис:

add destination, source
sub destination, source

Инструкция add складывает операнды destination и source и результат помещает в операнд destination. Инструкция sub вычитает из destination операнд source и результат вычитания помещает в операнд destination.

; для add
destination = destination + source
; для sub
destination = destination - source

В качестве операндов могут участвовать регистры, переменные, константы и непосредственные операнды. Следует учитывать, что константы и непосредственные операнды могут быть размером не более 32 бита, даже если первый операнд представляет 64-битный регистр.

Пример сложения:

.code
main proc
    mov rdx, 6
    mov rax, 10 
    add rax, rdx  ; rax = rax + rdx
    ret
main endp
end

Здесь к числу в регистре rax прибавляем значение из регистра rdx. В итоге в rax будет число 16.

Пример вычитания:

.code
main proc
    mov rdx, 6
    mov rax, 10 
    sub rax, rdx  ; rax = rax - rdx
    ret
main endp
end

В данном случае из значения в регистре rax (10) вычитаем значение регистра rdx (6). В итоге в регистре rax будет число 4.

inc и dec

Инструкции inc и dec увеличивают и уменьшают соответственно на единицу значение операнда. В качестве операнда может передаваться регистр или переменная:

.code
main proc
    mov rdx, 3
    mov rax, 8
    inc rdx         ; RDX = RDX + 1
    dec rax         ; RAX = RAX - 1
    ret
main endp
end

Здесь значение регистра RDX увеличивается на 1 с помощью инструкции inc, а значение регистра RAX уменьшается на 1 с помощью инструкции dec

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850