Как и другие заметили, вы должны использовать QueryPerformanceCounter.
но если вы действительно хотите использовать ассемблер, лучше всего использовать встроенный __rdtsc.
Если вы не хотите использовать встроенное, то это будет лучший подход:
unsigned __int64 __declspec(naked) GetPentiumTimer() {
__asm {
rdtsc
ret
}
}
Насколько мне известно, Visual C ++ отказывается делать inline для любой функции, которая все равно использует встроенный ассемблер. Используя __declspec (naked), вы указали бы компилятору правильно обрабатывать использование регистра.
Но лучше было бы использовать intrinsic, таким образом, компилятор знал бы, какие регистры используются, и он правильно указывается.