操作碼 |
指令 |
說明 |
0F 31 |
RDTSC |
將時間標籤計數器讀入 EDX:EAX |
將處理器的時間標籤計數器的當前值載入到 EDX:EAX 暫存器。時間標籤計數器包含在 64 位 MSR 中。MSR 的高 32 位載入到 EDX 暫存器,低 32 位載入到 EAX 暫存器。處理器每時鐘週期遞增時間標籤計數器 MSR 一次,在處理器復位時將它重設為 0。
暫存器 CR4 中的時間標籤禁用 (TSD) 標誌限制 RDTSC 的使用。清除 TSD 標誌時,RDTSC 指令可以在任何特權級別執行;設定此標誌時,指令只能在特權級別 0 執行。在特權級別 0 執行時,時間標籤計數器還可以使用 RDMSR 指令讀取。
RDTSC 指令不是序列化指令。這樣,在讀取計數器之前,它沒有必要等到前面的所有指令都已執行。類似地,在執行讀取操作之前,後面的指令也可以開始執行。
此指令在“英特爾(R) 體系結構”的奔騰(R) 處理器中引入。
IF (CR4.TSD 0) OR ((CR4.TSD 1) AND (CPL=0))
THEN
EDX:EAX TimeStampCounter;
ELSE (* CR4 is 1 and CPL is 1, 2, or 3 *)
#GP(0)
FI;
無。
#GP(0) - 如果暫存器 CR4 中的 TSD 標誌設定為 1,並且 CPL 大於 0。
#GP - 如果暫存器 CR4 中的 TSD 標誌設定為 1。
#GP(0) - 如果暫存器 CR4 中的 TSD 標誌設定為 1。