<分区>
我是 C++ 和基准测试的新手
我不明白这部分代码的作用? 所以我发现了一些关于 edx、eax 寄存器的信息,但我不完全理解它是如何影响代码的。所以我理解这段代码本质上返回了 cpu 周期的当前滴答。那么,它是否将当前报价存储到寄存器中,一部分存储在 hi 中,另一部分存储在 lo 中。并且,“=a”和“=d”是否指定将其存储在哪个寄存器中。
还有把它分成两部分的意义何在。
"rdtsc" : "=a" (lo), "=d" (hi)
上下文中的代码:
int64_t rdtsc(){
unsigned int lo,hi;
__asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
return ((uint64_t)hi << 32) | lo;
}