>> Technologie Électronique >  >> GPS (systèmes de positionnement) >> RFID

Drapeaux Direction (DF) & Trap (TF) du 8086 : Opérations chaînes & débogage pas-à-pas

Deux drapeaux spéciaux dans le registre FLAGS

Bit 10 = DF (Direction Flag), Bit 8 = TF (Trap Flag). Ils contrôlent la direction des chaînes et le traçage niveau instruction.

Drapeau Direction (DF)

  • DF = 0 (CLD) : Instructions chaînes auto-incrémentent SI/DI (avant).
  • DF = 1 (STD) : Instructions chaînes auto-décrémentent SI/DI (arrière).
  • Instructions affectées : MOVS, CMPS, SCAS, LODS, STOS, INS, OUTS (et préfixes REP).

Exemple : Copie avant puis copie inverse

 ; Copie 10 octets src vers dst (avant) cld ; DF=0 mov si, offset src mov di, offset dst mov cx, 10 rep movsb ; SI,DI incrémentent ; Inverse la chaîne sur place (arrière) std ; DF=1 mov si, offset dst + 9 mov di, offset dst + 9 mov cx, 10 rep movsb ; SI,DI décrémentent 

Drapeau Trap (TF)

  • TF = 0 : Exécution normale.
  • TF = 1 : Après chaque instruction, CPU génère INT 1 (Type 1) — exception pas-à-pas unique.
  • Utilisé par débogueurs (DEBUG, Turbo Debugger, WinDbg, GDB) pour implémenter "Step Into".
  • Mis via INT 3 (point d'arrêt) ou PUSHF / OR word ptr [sp], 100h / POPF.
  • Gestionnaire interruption peut examiner registres, mémoire, puis IRET pour reprendre.

Flux débogueur

  1. Débogueur met TF=1 dans FLAGS sauvegardés sur pile.
  2. Code utilisateur exécute une instruction.
  3. CPU empile FLAGS/CS/IP, efface TF, saute vers gestionnaire INT 1 (débogueur).
  4. Débogueur lit état registres, met à jour UI.
  5. Débogueur restaure TF=1 dans FLAGS sauvegardés, IRET → instruction suivante.

Interaction

  • DF et TF sont indépendants ; tous deux dans FLAGS.
  • Instruction chaîne avec TF=1 : chaque itération (chaque MOVSB) déclenche INT 1 — extrêmement lent, mais permet inspection par élément.

Résumé

DrapeauBitInstruction pour SetInstruction pour ClearUsage principal
DF10STDCLDDirection chaînes (SI/DI inc/dec)
TF8INT 3 / POPF avec bitIRET (auto) / POPFDébogage pas-à-pas
RFID