#include <stdio.h>
//说明:RDTSC (就是ReaD TimeStamp Count) 其精度可以达到ns(纳秒)级别。(准确地说,其精度是1/F,F为你的CPU的时钟频率,这也是极限精度了)
//备注:RDTSC指令的机器码为 0x0F 0x31
inline __int64 RDTSC()
{
__int64 TimeStamp;
unsigned long highDword;
unsigned long lowDword;
__asm
{
rdtsc;
//也可以如下这样直接嵌入机器码
//_emit 0x0F;
//_emit 0x31;
mov highDword,ebx;
mov lowDword,eax;
}
TimeStamp = highDword;
TimeStamp <<= 32;
TimeStamp |= lowDword;
return TimeStamp;
}
int main(void)
{
__int64 t1,t2;
t1 = RDTSC();
//空循环,用于延时
for ( int n=0; n<1000; n++ )
{
}
t2 = RDTSC();
printf("%I64u/r/n",(t2-t1));
return 0;
}