FAQ AssembleurConsultez toutes les FAQ

Nombre d'auteurs : 8, nombre de questions : 50, dernière mise à jour : 26 avril 2014  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur le forum Assembleur de et de l'expérience personnelle des auteurs. Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être exhaustive ; vous pouvez la compléter avec vos propres questions/réponses ou proposer des corrections ou des compléments à des questions/réponses existantes.

Nous espérons que cette FAQ saura répondre à un maximum de vos questions. Nous vous en souhaitons une bonne lecture.

L'équipe Assembleur de Developpez.com.

Commentez


SommaireF.A.Q. Assembleur x86Interruptions (2)
précédent sommaire suivant
 

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 :

Code assembly-x86 : Sélectionner tout
1
2
3
4
 
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 :

Code assembly-x86 : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
 
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 :

Code assembly-x86 : Sélectionner tout
1
2
 
int 0FDh

Mis à jour le 8 novembre 2004 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.

Mis à jour le 8 novembre 2004 Smortex

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

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 © 2016 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.

 
Responsable bénévole de la rubrique Assembleur : Alcatîz -