Je suis en train de faire d'essayer de faire un petit schéma du statut de ma mémoire vive aprés passage en PMode et initialisation de l'IDT & GDT et je remarque que dans mes sources, je copie la GDT a l'adresse linéaire 0x600 et l'IDT a l'adresse linéaire 0x800.
Chacune de ces tables faisant chacun 2Ko, soit 2048 octets donc 0x800 en hexa, j'en conclue que la GDT écrase l'IDT !
En effet 0x600(adresse GTD) + 0x800(taille de la GDT) ça nous donne 0xE00, donc on a deja passé l'adresse du debut de l'IDT.
Et pourtant tout fonctionne trés bien ! Une fois le PIC reprogrammé, les IRQ fonctionnent. Donc quelque chose m'échappe, quelqun pour m'expliquer ?
Au passage petit bémol, je n'arrive toujours pas a lever une exception du CPU en faisant expres de faire une divison par zero par exemple.
J'ai essayé de changer l'adresse de l'IDT en la mettant loin en 0x80000 par exemple, mais ça ne change rien.
Enfin voila, le schéma de la mémoire est encore floue dans ma tete, et l'IDT ne semble pas au point.
Partager