difference interruption/exception [asm] - ASM - Programmation
Marsh Posté le 12-10-2004 à 22:36:03
Une interruption est utilisée pour gérer des évenements provenant de l'extérieur (clavier, souris, carte, ...) alors qu'une exception est utilisée pour gérer des erreurs dans le programme comme des divisions par zéro. Le traitement déclenché produit une conséquence identique dans les 2 cas : l'interruption du flot normal du programme et la redirection vers une routine de traitement de cette interruption/exception.
Au niveau interne, une interruption est gérée par le processeur une fois l'instruction courante terminée. Si le processeur reçoit un signal sur sa broche d'interruption, il va rechercher l'adresse de la routine de traitement de cette interruption dans la table des interruptions, et transmettre le controle du programme à cette routine. Une fois celle ci terminée, le processeur va continuer l'exécution du programme à l'endroit où il a été stoppé par l'interruption.
En ce qui concerne les exceptions, il en existe 3 sortes :
- les Faults : elles sont détectées et gérées par le processeur avant les instructions ayant provoqué la Fault
- les Traps : à l'inverse des faults, elles sont gérées par le processeur après exécution de l'instruction ayant causé la Trap. Les interruptions définies par l'utilisateur entrent également dans cette catégorie.
- les Aborts : utilisées uniquement pour signaler de graves problèmes systèmes, lorsque plus aucune opération n'est possible.
Voila
Marsh Posté le 12-10-2004 à 20:39:14
bonjour,
Je voulais savoir quelle etait la difference precise entre interruption et exception.
-les deux peuvent etre appeles dans un code asm pour derouter une programme je crois ("trap" et "int" )
-on peut attacher un handler aux deux.
-par contre seul les interuptions peuvent en plus venir de peripherique exterieur.
-les exceptions viennent de l'alu. (division par zero, par ex)
si qq'un a une explication au niveau interne a un processeur meme, ca serait interessant.