IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

IDT, GDT qui se chevauchent ?


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut IDT, GDT qui se chevauchent ?
    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.

  2. #2
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut
    En fait si, l'IDT est parfaitement au point
    Il se trouve juste que gcc en -O2 voyait bien qu'il y avait une divison par zero et optimisé le code pour qu'elle n'y soit plus, donc forcément, aucune exception levée....
    En enlevant l'argument O2 à la compilation, j'ai enfin mon exception

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tables avec dates qui se chevauchent
    Par Bidule_en perdition dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 25/10/2007, 18h15
  2. 2 formulaires qui se chevauchent
    Par grabriel dans le forum Langage
    Réponses: 3
    Dernier message: 03/10/2007, 13h51
  3. Partitions qui se chevauchent
    Par Petsman dans le forum Administration système
    Réponses: 1
    Dernier message: 08/07/2007, 08h58
  4. Réponses: 4
    Dernier message: 19/05/2006, 23h14
  5. pb de if et end loop qui se chevauchent
    Par new_wave dans le forum Oracle
    Réponses: 5
    Dernier message: 21/11/2005, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo