Voltar à lista
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.

IntelAT&TObservação
mov rax, rbxmovq %rbx, %raxAT&T inverte a ordem: origem, destino.
mov rax, 5movq $5, %raxImediatos levam $ no AT&T.
mov rax, [rbx]movq (%rbx), %raxColchetes viram parênteses.
mov rax, [rbx+rcx*8+16]movq 16(%rbx,%rcx,8), %raxdesloc(base, índice, escala).
add eax, 1addl $1, %eaxSufixo de tamanho: b/w/l/q.
lea rsi, [rel msg]leaq msg(%rip), %rsiEndereçamento relativo a RIP.