分享方式:


__rdtscp

Microsoft 特定的

產生 rdtscp 指令、寫入 TSC_AUX[31:0] 記憶體,並傳回 64 位時間戳計數器 (TSC) 結果。

語法

unsigned __int64 __rdtscp(
   unsigned int * AUX
);

參數

輔助
[out]將包含電腦特定快取器 TSC_AUX[31:0]內容之位置的指標。

傳回值

64 位無符號整數刻度計數。

需求

內建 架構
__rdtscp x86、x64

頭檔<intrin.h>

備註

內部 __rdtscp 函數會產生 rdtscp 指令。 若要判斷此指令的硬體支援,請使用呼叫 __cpuid 內部函數, InfoType=0x80000001 並檢查的 CPUInfo[3] (EDX)位 27。 如果支援指令,則此位為 1,否則為 0。 如果您在不支援 rdtscp 指令的硬體上執行使用內部函數的程式代碼,則結果無法預測。

此指令會等到所有先前的指令都已執行,而且所有先前的載入都是全域可見的。 不過,這不是串行化指令。 如需詳細資訊,請參閱 Intel 和 AMD 手冊。

TSC_AUX[31:0] 值的意義取決於操作系統。

範例

#include <intrin.h>
#include <stdio.h>
int main()
{
    unsigned __int64 i;
    unsigned int ui;
    i = __rdtscp(&ui);
    printf_s("%I64d ticks\n", i);
    printf_s("TSC_AUX was %x\n", ui);
}
3363423610155519 ticks
TSC_AUX was 0

END Microsoft 特定的

另請參閱

__rdtsc
編譯程式內部函數