我在代码中使用了以下函数:
static __inline__ unsigned long long rdtsc(void){
unsigned long long int x;
__asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
return x;
}此函数是否返回上次引导以来的滴答数?在哪里可以找到有关此函数的文档?
发布于 2012-01-16 14:34:40
RDTSC获取自上次重置以来的cpu周期数,请参见维基百科。
英特尔指令集手册第2A和B卷,作为一个更可信的来源:
处理器在每一个时钟周期单调地增加时间戳计数器MSR,并在处理器被重置时将其重置为0。有关时间戳计数器行为的具体细节,请参阅Intel 64和IA-32架构软件开发人员手册第16章中的“时间戳计数器”,第3B卷。
顺便提一句:您不应该发射字节,而应该使用实际的RTDSC指令助记符,这样才能使它更加可读性。
https://stackoverflow.com/questions/8881251
复制相似问题