Det er fordi assembler syntaksen i min kode er at&t (fordi jeg bruger gcc).
MSVC forstår Intel syntaks og de 2 er ikke kompatible.
Jeg ved ikke hvordan man får loadet en long long variabel fra eax:edx registret med Intel syntaks og jeg har ikke mulighed for at teste.
Et skud i tågen er noget ala:
unsigned long lo, hi;
asm {
cpuid
move lo, eax
move hi, edx
}
start = lo;
start <<= 32;
start |= hi;
i stedet for linien:
asm (".byte 0x0f, 0x31" : "=A" (start));
Men siden du nu bruger VC++ så synes jeg du skulle kigge på kamel programmet:
http://www.codeproject.com/system/camel.asp