特定のアセンブリ命令に必要な CPU サイクルについて説明しているインテルのオンライン ブックがあると聞きましたが、(一生懸命試した後) 見つけることができません。CPUサイクルを見つける方法を教えてください。
以下に例を示します。以下のコードでは、mov/lock は 1 CPU サイクル、xchg は 3 CPU サイクルです。
// This part is Platform dependent!
#ifdef WIN32
inline int CPP_SpinLock::TestAndSet(int* pTargetAddress,
int nValue)
{
__asm
{
mov edx, dword ptr [pTargetAddress]
mov eax, nValue
lock xchg eax, dword ptr [edx]
}
// mov = 1 CPU cycle
// lock = 1 CPU cycle
// xchg = 3 CPU cycles
}
#endif // WIN32
ところで: ここに私が投稿したコードの URL があります: http://www.codeproject.com/KB/threads/spinlocks.aspx