Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > x86 32-bits / 64-bits
x86 32-bits / 64-bits Architectures x86 32/64 bits et leurs outils (assembleurs, debuggers, émulateurs...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 24/08/2012, 15h54   #1
transgohan
Expert Confirmé
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Développeur Temps réel Embarqué
Inscription : janvier 2011
Messages : 1 316
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

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

Informations forums :
Inscription : janvier 2011
Messages : 1 316
Points : 2 953
Points : 2 953
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.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2012, 22h05   #2
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 639
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 639
Points : 11 096
Points : 11 096
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 :
Citation:
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.
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/08/2012, 11h53   #3
transgohan
Expert Confirmé
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Développeur Temps réel Embarqué
Inscription : janvier 2011
Messages : 1 316
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

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

Informations forums :
Inscription : janvier 2011
Messages : 1 316
Points : 2 953
Points : 2 953
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.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h53.


 
 
 
 
Partenaires

Hébergement Web