Interruption et registre - ASM - Programmation
Marsh Posté le 13-10-2005 à 17:27:25
vincent0 a écrit : Bonjour, |
1) une interruption n'est pas un petit programme, c'est un signal envoyé par le processeur ou un périphérique qui interrompt le programme en cours d'exécution, et qui le dirige vers un handler d'exception, ce que tu appelles un "petit programme"
ces handlers sont situés dans la partie basse de la mémoire, et inaccessibles sous un OS moderne (> Win2000/NT)
2) un désassembleur
Marsh Posté le 14-10-2005 à 11:20:00
Salut,
Dans interruption, il y a deux choses.
Le PROC (le petit programme) se finissant non pas par un ret mais un IRET (Interrupt return).
Un tableau de dword (4 bytes) contenant les adresses de ces PROC.L'adresse de ce tableau est connu du systeme.POur retrouver l'adresse de l'int 10h, par exemple,le systeme prend l'adresse du tableau + 10h * 4 et fait un call a cette adresse.
Le tableau d'adresse était modifiable avec le systeme MS-DOS.
Avec XP il existe toujours,mais est reservé au systeme.
Les API ont suplanté (avec bonheur) les appels aux interruptions.
ToutEnMasm
Marsh Posté le 01-03-2006 à 22:40:53
Je crois qu'il y a un peu d'amalgamme entre tout plein de choses....
Citation : 1)On m'a dit que les interruptions étaient des petits programmes mais où sont ses petit programme ? |
En mode réel ( sous dos par exemple ), les adresses des gestionnaires d'interruptions sont stockés dans l'IVT ( interrupt vector table ) qui commence à l'adresse physique 0x0000... bref... en mode protégé l'IVT est remplacée par une IDT ( interrupt descriptor table ) qui contient donc les adresses des gestionnaires pour chaques interruptions, à la différence que cette IDT peut être stocké n'importe où dans la mémoire au choix de l'os...
Citation : Est-ce que c'est l'os qui contient ses petit programme ? |
En mode réel non : la plupart sont gérées par le BIOS.
En mode protégé : oui...
Citation : Peux-t-on avoir accès au code des petits programmes ? |
Sous Windows ça risque d'être assez compliqué... Par contre sous DOS, comme je l'ais déja dit, les adresses des gestionnaires sont accessibles ( adresse physique 0x000 + 4 * n° vecteur )... donc oui c'est possible, mais ca aide pas beaucoup... c'est très compliqué de comprendre un programme désassemblé...
Citation : 2) Existe-t-il un logiciel (pour win ou linux) qui permet de voir ce qu'il y a dans les registres, la mémoire ram et la pile ? |
Sous DOS ou dans une console, sous Windows, il y a "debug" qui permet de faire ça...
Marsh Posté le 02-03-2006 à 16:30:12
ToutEnMasm a écrit : Salut, |
oui enfin il a pas dit qu'il était sur une machine x86 en mode réel sous DOS non plus.
et pour les API, les services basiques de l'os sont souvent exposé par interruption...
Marsh Posté le 13-10-2005 à 17:08:06
Bonjour,
1)On m'a dit que les interruptions étaient des petits programmes mais où sont ses petit programme ? Est-ce que c'est l'os qui contient ses petit programme ?
Peux-t-on avoir accès au code des petits programmes ?
2) Existe-t-il un logiciel (pour win ou linux) qui permet de voir ce qu'il y a dans les registres, la mémoire ram et la pile ?
Thx...
Message édité par vincent0 le 13-10-2005 à 17:09:13