Esta é uma leitura estruturada para a montagem x86 , está escrita na linguagem mais fácil possível com exemplos do mundo real. ?
| Tipo Intel | Bits | Nome |
|---|---|---|
| - | 8 bits | BYTE |
| 8086 | 16 bits | PALAVRA |
| I386 | 32 bits | DWORD |
| x86 | 64 bits | QWORD |
dword = dword = (palavra dupla)
QWORD = QWORD = (Quad-Word)
Em cpus de braço de 32 bits, uma palavra é de 32 bits.


(Texto mais antigo da Universidade da Virgínia Ciência da Computação (2006), um dos melhores guias para a montagem x86)
Os processadores modernos (ou seja, 3 86 e além) x 86 têm oito registros de fins gerais de 32 bits, conforme mostrado na Figura 1. Os nomes dos registros são principalmente históricos . Por exemplo, o EAX costumava ser chamado de acumulador, pois foi usado por várias operações aritméticas, e o ECX era conhecido como o contador, pois foi usado para manter um índice de loop. Enquanto a maioria dos registros perdeu seus propósitos especiais no conjunto de instruções modernas, por convenção, dois são reservados para fins especiais - o ponteiro da pilha (ESP) e o ponteiro da base (EBP).
Para os registros EAX , EBX , ECX e EDX , as subseções podem ser usadas. Por exemplo, os 2 bytes menos significativos do EAX podem ser tratados como um registro de 16 bits chamado AX . O byte menos significativo do AX pode ser usado como um único registro de 8 bits chamado AL , enquanto o byte mais significativo de AX pode ser usado como um único registro de 8 bits chamado AH . Esses nomes se referem ao mesmo registro físico. Quando uma quantidade de dois bytes é colocada em DX , a atualização afeta o valor de DH , DL e EDX . Esses sub-registros são principalmente de versões mais antigas e de 16 bits do conjunto de instruções. No entanto, às vezes eles são convenientes ao lidar com dados menores que 32 bits (por exemplo, caracteres ASCII de 1 bytes) .
Ao se referir a registros no idioma da montagem, os nomes não são sensíveis ao minúsculos . Por exemplo, os nomes EAX e EAX se referem ao mesmo registro .


Em x86, os registros têm um ' e ' na frente do nome.
Exemplo: e machado, e bx, e cx, e dx, e bp
Informações adicionais:
Em x64, você tem um ' r '.
Exemplo: r ax, r bx, r cx, r dx, r bp
Você também tem ponto flutuante de precisão dupla, passando do XMM0 para XMM15 .

Assembléia X86 completa, 20 páginas.

