FAQ AssembleurConsultez toutes les FAQ

Nombre d'auteurs : 8, nombre de questions : 50, dernière mise à jour : 8 juillet 2013 

 
OuvrirSommaireF.A.Q. Assembleur x86Interruptions

La première étape consiste a écrire le code de l'interruption lui même. Il est identique a celui de l'écriture d'une procédure "normale" si ce n'est qu'il se termine par une instruction iret au lieu de ret.
Par exemple, on va créer une interruption FDh :

 
Sélectionnez

IntFD:
[...]
iret				

La seconde étape consiste à initialiser le vecteur d'interruption de manière à pointer la zone mémoire qui contient le programme a éxécuter.
Chaque vecteur occupe 4 octets a partir de l'adresse 0000:0000 et qui indiquent la zone de la mémoire où se trouve le code de l'interruption. C'est donc cet espace qu'il faut mettre a jour.
Exemple :

 
Sélectionnez

Init_IntFD:
push ax
push es
xor  ax,ax
mov  es,ax; Es <--- 0
mov  word[es:0FDh*4],IntFD; Initialisation du vecteur
mov  word[es:0FDh*4+2],cs; de l'interruption
pop  es
pop  ax
ret

C'est terminé ! Il ne reste plus qu'a déclencher l'interruption :

 
Sélectionnez

int 0FDh
Créé le 8 novembre 2004  par Romain Tartière (Smortex)

Pour programmer sur un système x86, il est indispensable d'avoir une table des interruptions sous la main... On peut en trouver de nombreuses plus ou moins complètes sur le Web... Celle de Ralf BROWN est très complète. Vous la trouverez en consultation en ligne ici : http://www.ctyme.com/rbrown.htm Ou si vous préférez tout télécharger, rendez-vous ici : http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html

Créé le 8 novembre 2004  par Romain Tartière (Smortex)
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2004-2013 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.