Guide complet des modes d'adressage 8086 : Les 10 types expliqués
Comment le 8086 trouve ses opérandes
L'architecture mémoire flexible de l'Intel 8086 prend en charge 10 modes d'adressage distincts, chacun calculant l'adresse effective (EA) différemment. Les maîtriser est clé pour une programmation assembleur efficace.
Les 10 modes d'adressage
1. Adressage registre
MOV AX, BX — Opérande dans un registre général (AX, BX, CX, DX, SI, DI, BP, SP). Le plus rapide, pas d'accès mémoire.
2. Adressage immédiat
MOV AX, 1234H — Opérande encodé dans l'instruction elle-même. Utilisé pour les constantes.
3. Adressage direct (absolu)
MOV AX, [1234H] — Décalage 16 bits dans l'instruction ; DS × 16 + décalage = adresse physique. Emplacement mémoire fixe.
4. Adressage indirect par registre
MOV AX, [BX] / [SI] / [DI] / [BP] — Le registre contient le décalage. BP défaut au segment SS ; autres à DS.
5. Adressage basé (base-relatif)
MOV AX, [BX+10H] — Registre de base (BX/BP) + déplacement 8/16 bits. Accède structures, cadres de pile.
6. Adressage indexé
MOV AX, [SI+20H] — Registre index (SI/DI) + déplacement. Idéal pour indexation tableaux.
7. Adressage basé-indexé
MOV AX, [BX+SI] — Base + index, pas de déplacement. Tableaux 2D, opérations chaînes.
8. Adressage basé-indexé avec déplacement
MOV AX, [BX+SI+30H] — Base + index + déplacement 8/16 bits. Le plus flexible ; tableaux de structures.
9. Adressage chaîne (implicite)
MOVSB / CMPSB / SCASB — DS:SI (source), ES:DI (dest). SI/DI auto-inc/dec selon drapeau DF. Pas d'opérandes dans l'instruction.
10. Adressage relatif (IP-relatif)
JMP SHORT LABEL / JNE LABEL — Déplacement signé 8/16 bits ajouté à IP. Utilisé pour sauts/appels.
11. Adressage implicite (inhérent)
CLC / NOP / HLT — Opérandes implicites dans l'opcode. Pas de calcul d'adresse.
Registres de segment & défauts
| Mode | Segment défaut | Préfixe substitution |
|---|---|---|
| Basé BP ([BP], [BP+SI], [BP+DI]) | SS | CS, DS, ES, SS |
| Tous autres (BX, SI, DI, direct) | DS | CS, ES, SS |
| Destination chaîne (ES:DI) | ES | Ne peut pas substitution |
Résumé calcul adresse effective
EA = (Base? + Index? + Déplacement?) mod 64 Ko. Physique = Segment × 16 + EA.
Choisir le bon mode réduit octets d'instruction, cycles, et pression registres — crucial pour les contraintes serrées du 8086.
