-
Do me a favor?
I'm hoping you guys running K8 or P3 and up CPUs can help me with something,
run the program CPUID.EXE.TXT (I had to add the .txt to allow an upload)
or if for any reason you don't trust me, compile and run CPUID.CPP
then tell me what the program says, and also say the exact specs of your processor.
Thanks.
-
Funny thing is that's actually not too big for a text file.
Be nice if you put it's output in a text box so we could just copy and paste for you.
Vendor: GenuineIntel
Family: 15
Model: 6
exFamily: 0
ExModel: 0
Type: 0
Stepping: 5
-
Vendor: GenuineIntel
Family: 15
Model: 6
exFamily: 0
ExModel: 0
Type: 0
Stepping: 5
(yes, same as guesst)
Pentium D 925 (Presler) 3.00ghz
btw, cpu-z says Ext. Model 6. No idea what that means, but your program says 0. Ext. Family, too. cpu-z says F (15, same as Family).
-
Family 6
Model 15
ExFamily 0
ExModel 0
Type 0
Stepping 2
This is supposedly a Core2 Duo, so I expected it to be different from a D925...
--
Mats
-
Code comments:
Code:
asm("push eax;"
"push ebx;"
"push ecx;"
"push edx;"
"mov eax, 0;"
"cpuid;"
"mov [_CPUVendor], ebx;"
"mov [_CPUVendor + 4], edx;"
"mov [_CPUVendor + 8], ecx;"
"mov [_CPUSignature], eax;");
No need to save registers. MS compiler figures out what registers you use and save them for you.
I personally would write a simple function that gets you a, b, c and d as DWORD's from CPUID function x, e.g something like this [syntax of storing a, b, c and d is possibly faulty]
Code:
void getcpuid(DWORD func, DWORD *a, DWORD *b, DWORD *c, DWORD *d)
{
__asm("mov eax, func;"
"cpuid;"
"mov b, ebx;"
"mov d, edx;"
"mov c, ecx;"
"mov a, eax;");
}
--
Mats