Для сложения применяется инструкция add:
add operand1, operand2 ; operand1 = operand1 + operand2
Она принимает два операнда, складывает их и помещает результат в первый операнд. Сложим два числа:
mov rdi, 22 mov rsi, 11 add rdi, rsi ; rdi = rdi + rsi = 22 + 11 = 33
Здесь инструкция add rdi, rsi
складывает значения регистров RSI и RDI и помещает результат в регистр RDI.
Для вычитания применяется инструкция sub, которая также принимает два операнда, вычитает из первого операнда второй операнд и помещаем результат в первый операнд. Вычтем одно число из другого:
mov rdi, 23 mov rsi, 11 sub rdi, rsi ; rdi = rdi - rsi = 23 - 11 = 12
Здесь инструкция sub rdi, rsi
вычитает из регистра RDI число из регистра RSI и помещает результат в регистр RDI.
Поскольку увеличение на 1 и уменьшение на 1 являются распространенными операция, то для них предусмотрены отдельные инструкции - inc (для увеличения на 1) и dec (уменьшение на 1). Эти инструкции принимают только один операнд, значение которого уменьшается/увеличивается. Инкремент:
mov rdi, 23 inc rdi ; rdi = rdi + 1 = 23 + 1 = 24
Декремент:
mov rdi, 23 dec rdi ; rdi = rdi - 1 = 23 - 1 = 22