Section courante

A propos

Section administrative du site

Assembleur 80x86

STI

INTEL 8088+ Set Interrupt Flag

Syntaxe

STI

Description

Cette instruction permet de fixer l'indicateur d'interruption (IF) à la valeur 1. Après avoir exécuter cette instruction, aucune interruption ne sera admise tant que l'instruction STI n'est pas rencontrée.

Algorithme

SI CPL <= IOPL ALORS
   drapeau IF ← 1
SINON SI (((VIRTUAL_MODE) ET (CR4.VME = 1)) OU ((PROTECTED_MODE) ET (CR4.PVI = 1) ET (CPL = 3))) ALORS
   SI RFLAGS.VIP = 1 ALORS
      EXCEPTION #GP(0)
   FIN SI
   RFLAGS.VIF ← 1
SINON
   EXCEPTION #GP(0)
FIN SI

Remarque

Mnémonique

Instruction Opcode Description
STI FBh Cette instruction permet de fixer l'indicateur d'interruption (IF) à la valeur 1.

Exemple

Cet exemple, en Turbo Pascal, permet de vérifier si la touche «ALT» du clavier est enfoncé :

  1. Program AltPressSamples;
  2.  
  3. Function IsAltPressed:Boolean;Assembler;ASM
  4. XOR AX,AX 
  5. MOV ES,AX 
  6. CLI 
  7. MOV AL,ES:[417h] 
  8. STI 
  9. AND AL,8 
  10. JZ @@End 
  11. MOV AL,1
  12. @@End:
  13. END;
  14.  
  15. BEGIN
  16.  If(IsAltPressed)Then WriteLn('Alt enfoncé')
  17.                  Else WriteLn('Alt n''est pas enfoncé');
  18. END.

Voir également

Instruction assembleur 80x86 - Instruction CLI

Références

Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 836
Assembleur Facile, Philippe Mercier, 1990, ISBN: 2-501-01176-7, page 417
AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions, Edition Advanced Micro Devices, Revision 3.14, September 2007, Publication No. 24594, page 305.
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z, Edition Intel, Mars 2010, Publication No. 253667-034US, page 463 à 465.

Dernière mise à jour : Lundi, le 1 septembre 2014