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ção | Operandos | Descrição |
|---|---|---|
| mov | dst, src | Copia src para dst (registrador, memória ou imediato). |
| lea | dst, [expr] | Carrega o endereço efetivo de expr — calcula o ponteiro sem acessar a memória. |
| movzx | dst, src | Copia um operando menor estendendo com zeros. |
| movsx | dst, src | Copia um operando menor estendendo com o bit de sinal. |
| xchg | a, b | Troca os dois operandos entre si. |
| push | src | Empilha src: subtrai 8 de rsp e grava o valor no topo. |
| pop | dst | Desempilha 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)