Voltar à lista
Assembly x86-64Instruções

Movimentação de dados

mov, lea, movzx, push, pop, xchg…

Instruções

Movem valores entre registradores, memória e a pilha. O destino vem sempre antes da origem na sintaxe Intel (mov destino, origem).

InstruçãoOperandosDescrição
movdst, srcCopia src para dst (registrador, memória ou imediato).
leadst, [expr]Carrega o endereço efetivo de expr — calcula o ponteiro sem acessar a memória.
movzxdst, srcCopia um operando menor estendendo com zeros.
movsxdst, srcCopia um operando menor estendendo com o bit de sinal.
xchga, bTroca os dois operandos entre si.
pushsrcEmpilha src: subtrai 8 de rsp e grava o valor no topo.
popdstDesempilha para dst: lê o topo e soma 8 a rsp.
mov, lea e a diferença entre eles
; lea calcula endereços; mov acessa a memória
    mov     rax, 5              ; rax = 5 (imediato)
    mov     rbx, rax            ; rbx = rax
    lea     rdi, [rel buffer]   ; rdi = endereço de buffer (não o conteúdo)
    mov     rsi, [rbx]          ; rsi = valor NA memória apontada por rbx
    push    rax                 ; salva rax na pilha
    pop     rcx                 ; rcx = rax (restaurado da pilha)