Modalità di Indirizzamento Intel Core: Guida Completa con Esempi
Cosa Sono le Modalità di Indirizzamento?
Le modalità di indirizzamento definiscono come la CPU calcola l'indirizzo effettivo di un operando. Intel Core (x86-64) supporta un ricco set, consentendo accesso flessibile alla memoria per array, struct, stack e codice indipendente dalla posizione.
Modalità di Indirizzamento Chiave
| Modalità | Esempio Sintassi | Calcolo Indirizzo Effettivo | Caso d'Uso |
|---|---|---|---|
| Registro | MOV EAX, EBX | Operando in registro | Registro-registro veloce |
| Immediato | MOV EAX, 42 | Costante nell'istruzione | Costanti, maschere |
| Diretto | MOV EAX, [0x1234] | Indirizzo assoluto nell'istruzione | Variabili globali |
| Registro Indiretto | MOV EAX, [RBX] | Indirizzo in registro | Puntatori, liste collegate |
| Base + Spostamento | MOV EAX, [RBP+8] | Registro base + offset firmato | Frame dello stack, campi struct |
| Indicizzato | MOV EAX, [RAX*4] | Registro indice × scala (1,2,4,8) | Elementi array |
| Base + Indice | MOV EAX, [RBX+RCX] | Base + registro indice | Array dinamici |
| Base + Indice + Spostamento | MOV EAX, [RBX+RCX*4+16] | Base + (indice × scala) + disp | Array di struct, multidimensionali |
| RIP-Relativo (x86-64) | MOV EAX, [RIP+0x100] | Instruction pointer + offset | Codice indipendente dalla posizione, globali |
| Segmentato (Legacy) | MOV EAX, FS:[0] | Registro di segmento + offset | Thread-local storage (FS/GS) |
Fattori di Scala
Solo 1, 2, 4, 8 consentiti — corrispondono alle dimensioni comuni dei dati (byte, word, dword, qword).
Perché È Importante
Output del compilatore, assembly scritto a mano e ingegneria inversa dipendono dal riconoscimento di questi schemi. Il moderno x86-64 favorisce RIP-relative e base+index+scale per PIC e prestazioni.