Salut à tous,
J'aimerais savoir à quoi sert le vecteur d'interruption numéro 1 . Je sais seulement que c'est pour l'exécution pas-à-pas, mais je n'ai pas compris.
Merci à tous
Salut à tous,
J'aimerais savoir à quoi sert le vecteur d'interruption numéro 1 . Je sais seulement que c'est pour l'exécution pas-à-pas, mais je n'ai pas compris.
Merci à tous
Bonjour,
Le vecteur d'int 1 est effectivement utilisé pour l'exécution en pas à pas ("single step" en anglais). Il est uniquement utilisé pour le débogage.
Il y a trois manière de générer une int#1 :
- via l'instruction INT n (ou n vaut 1 ; opcode : 0xCD 0x01)
- via l'instruction ICEBP / INT01 (opcode : 0xF1)
- via le registre EFLAG / RFLAG avec le drapeau TF (Trap Flag) à 1.
Chacune de ces manière à des conséquences différentes suivant le mode d'opération.
Ce qu'il faut retenir c'est que lorsque le processeur va rencontrer une de ces instructions il va générer une exception et va exécuter l'instruction suivante en pas à pas, c-a-d qu'il va l'exécuter puis s'arrêter ! (on comprend alors pourquoi c'est uniquement utile au débogage).
Si tu veux creuser plus le sujet, je te conseille de regarder aux manuels Intel ou AMD aux instructions "INT n", ce qui te guidera ensuite vers d'autres chapitres ou manuels, le sujet étant réellement très complexe car mettant en jeu nombre de mécanismes internes.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager