>> Technologie Électronique >  >> Audio pour la maison >> Amplificateurs et préamplis

Modes adressage 8086 Assembly : Référence complète (7 modes)

L'Intel 8086 supporte 7 modes adressage principaux pour accéder opérandes en mémoire ou registres. Chaque mode détermine comment l'adresse effective (EA) est calculée.

Les 7 modes adressage

1. Adressage registres

  • Opérande dans registre. Pas accès mémoire.
  • Exemples : MOV AX, BX, ADD CL, DH, INC SI.
  • Le plus rapide (pas calcul EA, pas cycle bus).

2. Adressage immédiat

  • Opérande encodé dans instruction. Donnée constante.
  • Exemples : MOV AX, 1234H, ADD BL, 42, CMP CX, 0FFFFH.
  • Immédiat 8 ou 16 bits ; extension signe pour ops 8-bit vers 16-bit.

3. Adressage direct (absolu)

  • Adresse effective = déplacement 16 bits dans instruction. Pas registres.
  • Exemple : MOV AX, [1234H] → charge mot à offset 1234H dans DS courant.
  • Encodage : opcode + modrm (mod=00, r/m=110) + disp16.

4. Adressage indirect par registre

  • Adresse effective dans registre base/index : BX, SI, DI, ou BP.
  • Exemples : MOV AX, [BX], MOV [SI], CL, ADD [DI], 5.
  • BP défaut segment SS ; autres utilisent DS.

5. Adressage base + déplacement (Based)

  • EA = BX ou BP + déplacement 8/16 bits.
  • Exemples : MOV AX, [BX+10H], MOV [BP-2], DX.
  • Utilisé pour : champs structure, frames pile (BP), base tableau + offset.

6. Adressage indexé + déplacement (Indexed)

  • EA = SI ou DI + déplacement 8/16 bits.
  • Exemples : MOV AL, [SI+20H], MOV [DI-4], BX.
  • Utilisé pour : accès élément tableau (index dans SI/DI, base dans disp).

7. Adressage base + indexé + déplacement (Based Indexed)

  • EA = BX/BP + SI/DI + déplacement 8/16 bits. 4 combos :
  • [BX+SI], [BX+DI], [BP+SI], [BP+DI] (+ disp optionnel).
  • Exemples : MOV AX, [BX+SI+100H], ADD [BP+DI-6], CL.
  • Utilisé pour : tableaux 2D (ligne dans BX, colonne dans SI), frames pile avec tableaux locaux.

Registres segments par défaut

Registre baseSegment défautPréfixe surcharge
BX, SI, DIDSCS:, ES:, SS:, FS:, GS: (386+)
BPSSDS:, ES:, CS: (rare)

Calcul adresse effective (Mode réel)

Adresse physique = (Segment × 16) + Adresse effective

Segment = DS (défaut) ou surchargé. EA depuis modes 3–7 ci-dessus.

Notes encodage (Octet ModR/M)

  • mod (2 bits) : 00=mem sans disp, 01=mem disp8, 10=mem disp16, 11=registre.
  • reg (3 bits) : registre opérande.
  • r/m (3 bits) : mode adressage mémoire / registre.
  • Modes 4–7 utilisent mod ≠ 11 avec codes r/m spécifiques (ex: r/m=000 → [BX+SI]).

Bonus : 80386+ ajoute

  • Indexé échelonné : [base + index*scale + disp], scale = 1,2,4,8.
  • Registres 32 bits : EAX, ESI, EBP, ESP (avec octet SIB).
  • Segments FS/GS.
  • RIP-relatif (x86-64) : [RIP + disp32] — code position-indépendant.

En résumé : Les 7 modes 8086 couvrent accès scalaire, tableau, structure, pile. Maîtriser [BX+SI+disp] et [BP+disp] — ce sont les chevaux de bataille pour structures données et frames pile.

Amplificateurs et préamplis