Cos'è un Indirizzo Effettivo nell'Architettura dei Microprocessori?
Definizione
L'Indirizzo Effettivo (EA) è l'indirizzo di memoria finale e calcolato usato per recuperare un operando o un'istruzione durante l'esecuzione. Risulta dalla combinazione dei componenti di indirizzo specificati dalla modalità di indirizzamento dell'istruzione.
Componenti
- Indirizzo Base: base di segmento (CS, DS, SS, ES) o registro (BX, BP).
- Indice / Offset: registro (SI, DI) o spostamento immediato (8/16 bit).
- Fattore di Scala: (x86 32/64 bit) 1, 2, 4, 8 × indice.
Modalità di Indirizzamento Comuni e Calcolo EA
| Modalità | Esempio Assembly | Formula Indirizzo Effettivo |
|---|---|---|
| Immediato | MOV AX, 1234H | N/A (operando nell'istruzione) |
| Registro | MOV AX, BX | N/A (operando in registro) |
| Diretto | MOV AX, [1234H] | EA = Segmento×16 + 1234H |
| Registro Indiretto | MOV AX, [BX] | EA = DS×16 + BX |
| Basato | MOV AX, [BX+10H] | EA = DS×16 + BX + 10H |
| Indicizzato | MOV AX, [SI+20H] | EA = DS×16 + SI + 20H |
| Basato Indicizzato | MOV AX, [BX+SI] | EA = DS×16 + BX + SI |
| Basato Indicizzato + Spostamento | MOV AX, [BX+SI+30H] | EA = DS×16 + BX + SI + 30H |
| Relativo (IP-relativo) | JMP SHORT LABEL | EA = IP + spostamento con segno |
Segmento:Offset → Indirizzo Lineare (Modalità Reale)
Indirizzo Fisico = (Registro Segmento << 4) + Offset Effettivo In Modalità Protetta/Lunga: EA → Indirizzo Lineare → (Paginazione) → Indirizzo Fisico.
Perché è Importante
- Determina l'effettiva posizione di memoria acceduta.
- Abilita codice indipendente dalla posizione, stack frame, array, strutture.
- Limiti di segmento e permessi di paginazione verificati rispetto all'EA/Indirizzo Lineare.