bonjour j'ai un problème sur RDTSC
je prend n'importe quel code sur le net mais aucun ne marche
je sais que je travaille en intel et je veux que mon application marche sur n'importe quel intel.
Je suis sur un 32 bits mais je veux aussi travaillé en 64 bits

voici le code que j'ai trouvé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
double RDTSC(void)
{
#ifdef linux
  unsigned long long x;
  __asm__ volatile  (".byte 0x0f, 0x31" : "=A"(x));
  return (double)x;
#else
  unsigned long a, b;
  double x;
 
#ifdef _MSC_VER
  // Code pour Visual C++
  __asm
  {
    RDTSC
#else
  // Code pour Borland et autres
  asm
  {
    db 0x0F,0x31 // instruction RDTSC
#endif
    mov [a],eax
    mov [b],edx
  }
  x  = b;                       //le problème
  x *= 4294967296;
  x += a;
  return x;
#endif
}
le compilateur me répond `b' undeclared here (not in a function)
et integer constant is too large for "long" type