Après de nombreuses recherches sur Internet, j'ai implémenté une petite routine assembleur dans mon programme C++ pour obtenir la taille de la mémoire cache L1 du processeur en utilisant cpuid.Erreur dans mon premier programme d'assemblage (GCC Inline Assembly)
int CPUID_getL1CacheSize() {
int l1CacheSize = -1;
asm ("mov $5, %%eax\n\t" // EAX=80000005h: L1 Cache and TLB Identifiers
"cpuid\n\t"
"mov %%eax, %0" // eax into l1CacheSize
: "=r"(l1CacheSize) // output
: // no input
: "%eax" // clobbered register
);
return l1CacheSize;
}
Il fonctionne parfaitement sur Windows 7 64 bits avec MinGW (GCC, G ++). Ensuite, j'ai essayé ceci sur mon ordinateur Mac en utilisant GCC 4.0 et il doit y avoir une erreur quelque part parce que mon programme montre des chaînes étranges dans les ComboBox et certains signaux ne peuvent pas être connectés (Qt GUI).
Ceci est mon premier programme assembleur, j'espère que quelqu'un peut me donner un indice, merci!
Si vous le parcourez avec un débogueur, que voyez-vous se produire? –
@ user363778: Peut-être que vous devriez accepter une réponse de temps en temps? Voici comment faire: http://privat.rejbrand.se/howtoaccept.html –