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 :

Lecture du TSC


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut Lecture du TSC
    Bonjour,

    j'ai récemment retouché à une librairie C++ appelant de l'assembleur (instruction rdtsc) pour récupérer la valeur du TSC.
    Et je l'ai retouchée justement parce que la lecture de la valeur dans le registre ne correspondait pas totalement à la valeur du compteur.

    A savoir que la machine tournait en 64bits, le TSC est une valeur sur 64bits je pensais donc naïvement la retrouver dans le registre RAX. Sauf que je n'y ai retrouvé que 32 des 64 bits...
    En effet en cherchant sur le net j'ai trouvé des billets indiquant qu'il fallait lire EAX et EDX pour obtenir la valeur complète.

    Mais je n'ai trouvé aucune explication depuis ce jour !
    Quelqu'un aurait-il un document que je n'aurai trouvé expliquant cela ? Ou bien une explication ?

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 622
    Points
    23 622
    Par défaut
    Bonsoir,

    Citation Envoyé par transgohan Voir le message
    Quelqu'un aurait-il un document que je n'aurai trouvé expliquant cela ? Ou bien une explication ?
    Oui : le document de référence, « Intel® 64 and IA-32 Architectures Software Developer’s Manual », en ligne sur le site d'Intel.

    On y lit page 4-460 :

    Loads the current value of the processor’s time-stamp counter (a 64-bit MSR) into
    the EDX:EAX registers. The EDX register is loaded with the high-order 32 bits of the
    MSR and the EAX register is loaded with the low-order 32 bits. (On processors that
    support the Intel 64 architecture, the high-order 32 bits of each of RAX and RDX are
    cleared.)


    This instruction was introduced by the Pentium processor.

    C'est une instruction qui est apparue avec le Pentium, à une époque où l'architecture x86_64 n'était pas encore établie, et qui est restée telle quelle depuis, comme toutes les autres instructions de cette époque.

  3. #3
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Ah génial ! Merci.

    J'avais cherché sur leur site mais j'ai fini par me perdre... Mon anglais qui n'est pas assez correct ou bien leur organisation qui ne me revient pas.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

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

Discussions similaires

  1. [ADO] Sauvegarde / lecture de recordset
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/09/2002, 16h54
  2. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43
  3. Pb Lecture de bitmap monochrome
    Par Loïc38 dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/07/2002, 18h24
  4. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 12h01
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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