Modos de endereçamento definem como a CPU calcula o endereço efetivo de um operando. Intel Core (x86-64) suporta conjunto rico, permitindo acesso flexível a memória para arrays, structs, pilhas e código independente de posição.
| Modo | Exemplo de Sintaxe | Cálculo do Endereço Efetivo | Caso de Uso |
|---|---|---|---|
| Registrador | MOV EAX, EBX | Operando no registrador | Registrador-para-registrador rápido |
| Imediato | MOV EAX, 42 | Constante na instrução | Constantes, máscaras |
| Direto | MOV EAX, [0x1234] | Endereço absoluto na instrução | Variáveis globais |
| Indireto por Registrador | MOV EAX, [RBX] | Endereço no registrador | Ponteiros, listas encadeadas |
| Base + Deslocamento | MOV EAX, [RBP+8] | Registrador base + offset assinado | Frames de pilha, campos de struct |
| Indexado | MOV EAX, [RAX*4] | Registrador índice × escala (1,2,4,8) | Elementos de array |
| Base + Índice | MOV EAX, [RBX+RCX] | Base + registrador índice | Arrays dinâmicos |
| Base + Índice + Deslocamento | MOV EAX, [RBX+RCX*4+16] | Base + (índice × escala) + desloc | Arrays de struct, multidimensionais |
| Relativo a RIP (x86-64) | MOV EAX, [RIP+0x100] | Ponteiro de instrução + offset | Código independente de posição, globais |
| Segmentado (Legado) | MOV EAX, FS:[0] | Registrador de segmento + offset | Thread-local storage (FS/GS) |
Apenas 1, 2, 4, 8 permitidos — correspondem a tamanhos de dados comuns (byte, word, dword, qword).
Saída de compilador, assembly escrito à mão e engenharia reversa dependem de reconhecer esses padrões. x86-64 moderno favorece RIP-relativo e base+índice+escala para PIC e performance.
Tecnologia Eletrônica © [www.351231.com]