rdtsc
プロセッサのタイムスタンプ カウンターの現在の値を、EDX と EAX の 2 つのレジスタにロードすることはわかっています。x86で取得するには、次のようにする必要があります(Linuxを使用していると仮定):
unsigned long lo, hi;
asm( "rdtsc" : "=a" (lo), "=d" (hi));
return lo;
x86_x64 の場合:
unsigned long lo, hi;
asm( "rdtsc" : "=a" (lo), "=d" (hi) );
return( lo | (hi << 32) );
何故ですか?誰か説明してくれませんか?