Modes d'adressage 8086 Assembly : référence complète
Modes d'adressage mémoire de l'Intel 8086/8088
Le 8086 offre façons flexibles de former l'adresse effective 20 bits (EA) depuis registres 16 bits. Les comprendre est clé pour prog assembleur efficace.
1. Adressage registre
Opérande dans registre. MOV AX, BX — pas d'accès mémoire.
2. Adressage immédiat
Opérande encodé dans instruction. MOV CX, 1234h.
3. Adressage direct (absolu)
Offset 16 bits dans instruction. MOV AL, [1234h] → EA = DS:1234h.
4. Adressage indirect registre
Offset dans BX, SI, DI, ou BP. MOV DX, [SI] → EA = DS:SI (BP utilise SS).
5. Adressage basé
Registre base (BX ou BP) + déplacement 8/16 bits. MOV AX, [BX+10h].
6. Adressage indexé
Registre index (SI ou DI) + déplacement. MOV CL, [DI+20h].
7. Adressage basé indexé
Base (BX/BP) + Index (SI/DI). MOV BX, [BP+SI] → EA = SS:BP+SI.
8. Adressage basé indexé avec déplacement
Base + Index + disp8/16. MOV [BX+DI+4], AL.
9. Adressage chaîne (implicite)
MOVSB, CMPSW, STOSB… utilisent DS:SI (source) et ES:DI (dest) ; auto-inc/dec selon flag DF.
10. Adressage port E/S
- Direct :
IN AL, 3F8h(port 8 bits). - Indirect :
IN AL, DX(port 16 bits dans DX).
Préfixes surcharge segment
Tout mode mémoire peut préfixer CS:, DS:, ES:, SS:, FS:, GS: (386+) pour sélectionner segment.
Calcul adresse effective (mode réel)
EA = (Segment × 16) + Offset. Offset = somme base + index + déplacement selon mode.
Choisir bon mode réduit octets instruction, cycles, pression registres — critique en code 16-bit mode réel.
