Guide complet modes adressage microprocesseur 8086
Le microprocesseur Intel 8086 supporte un riche ensemble de modes d'adressage qui déterminent comment les instructions accèdent aux opérandes en mémoire, registres, ou espace E/S. Comprendre ces modes est essentiel pour écrire du code assembleur efficace.
1. Adressage registre
Registre direct : Opérande réside dans registre général (AX, BX, CX, DX, SI, DI, BP, SP). Mode le plus rapide — pas d'accès mémoire nécessaire.
MOV AX, BX ; Copie BX vers AX
2. Adressage immédiat
Donnée immédiate : Opérande encodé directement dans l'instruction. Utilisé pour constantes.
MOV CX, 00FFH ; Charge valeur immédiate
3. Adressage direct (absolu)
Adresse directe : Instruction contient décalage mémoire 16 bits. Segment par défaut DS.
MOV AL, [2000H] ; Charge depuis décalage 2000H dans DS
4. Adressage indirect par registre
Registre pointeur contient le décalage. Registres : BX, SI, DI, BP.
MOV AL, [BX] ; Charge depuis DS:BX
MOV AL, [BP] ; Charge depuis SS:BP (segment pile par défaut)
5. Adressage indexé
Décalage base + registre index (SI ou DI). Utile pour tableaux.
MOV AL, TABLEAU[SI] ; TABLEAU est base, SI est index
6. Adressage basé
Registre base (BX ou BP) + déplacement. BP défaut segment pile.
MOV AL, [BX+10H] ; DS:BX+10H
MOV AL, [BP+4] ; SS:BP+4 (accès frame pile)
7. Adressage base-indexé
Registre base + registre index. Combine base structure + index tableau.
MOV AL, [BX][SI] ; DS:BX+SI
MOV AL, [BP][DI] ; SS:BP+DI
8. Adressage base-indexé avec déplacement
Base + index + décalage constant. Plus flexible pour structures données complexes.
MOV AL, TABLE[BX][SI+20H] ; DS:BX+SI+20H
9. Adressage instructions chaîne
Modes spécialisés pour opérations bloc utilisant registres dédiés :
Source : DS:SI (ou ES:SI avec override segment)
Destination : ES:DI (ne peut être overridé)
Instructions : MOVS, CMPS, SCAS, LODS, STOS
SI/DI auto-incrément/décrément selon Drapeau Direction (DF)
Préfixes override segment
Toute référence mémoire peut utiliser préfixe override segment (CS:, DS:, ES:, SS:) pour changer segment par défaut pour cette instruction seulement.
Ces modes d'adressage donnent au 8086 une flexibilité remarquable pour manipulation structures données, opérations pile, et traitement tableaux — raisons clés de son influence durable sur architecture x86.
