Assembly x86-64Sintaxe
Intel × AT&T
As duas notações e como converter entre elas
Sintaxe Intel × AT&T
O mesmo código de máquina pode ser escrito em duas notações. A Intel (usada por NASM, MASM e nesta referência) coloca o destino primeiro; a AT&T (padrão do GAS e da saída de gcc -S) inverte a ordem, prefixa registradores com % e imediatos com $, e anexa um sufixo de tamanho.
| Intel | AT&T | Observação |
|---|---|---|
| mov rax, rbx | movq %rbx, %rax | AT&T inverte a ordem: origem, destino. |
| mov rax, 5 | movq $5, %rax | Imediatos levam $ no AT&T. |
| mov rax, [rbx] | movq (%rbx), %rax | Colchetes viram parênteses. |
| mov rax, [rbx+rcx*8+16] | movq 16(%rbx,%rcx,8), %rax | desloc(base, índice, escala). |
| add eax, 1 | addl $1, %eax | Sufixo de tamanho: b/w/l/q. |
| lea rsi, [rel msg] | leaq msg(%rip), %rsi | Endereçamento relativo a RIP. |