Voltar à lista
Assembly x86-64Instruções

Aritmética e lógica

add, sub, imul, xor, shl, sar…

Instruções

Operações de inteiro e bit a bit. Quase todas atualizam o RFLAGS (ZF, CF, SF, OF), o que os saltos condicionais depois consultam.

InstruçãoOperandosDescrição
add / subdst, srcSoma / subtrai src em dst.
inc / decdstIncrementa / decrementa dst em 1.
imul / mulsrcMultiplica (com / sem sinal). imul também tem formas de 2 e 3 operandos.
idiv / divsrcDivide rdx:rax por src (com / sem sinal); quociente em rax, resto em rdx.
negdstNega dst (complemento de dois).
and / or / xordst, srcLógica bit a bit. xor reg, reg é o jeito idiomático de zerar um registrador.
notdstInverte todos os bits (complemento de um).
shl / shrdst, nDesloca os bits à esquerda / direita (lógico, preenche com 0).
sardst, nDeslocamento aritmético à direita: preserva o bit de sinal.
zerar, somar e o idioma xor
    xor     eax, eax            ; rax = 0 (zera os 64 bits — mais curto que mov)
    add     eax, 10             ; rax = 10
    sub     eax, 3              ; rax = 7
    shl     eax, 1              ; rax = 14 (desloca 1 bit = multiplica por 2)
    and     eax, 0xF            ; mantém só os 4 bits baixos -> 14