如何使用CPUID作为序列化指令?

时间:2018-01-29 13:36:40

标签: c++ assembly cpuid

CPUID可用作herehere所述的序列化指令。在C ++中以这种方式使用它的最小/最简单的asm语法是什么?

// Is that enough?
// What to do with registers and memory?
// Is volatile necessary?
asm volatile("CPUID":::);

1 个答案:

答案 0 :(得分:2)

您是否有理由不使用围栏操作?如果目标是序列化一段代码,您可以执行类似

的操作
    asm __volatile__ (
" mfence \n"
" lfence \n"
);
Your code
asm __volatile__ (
" mfence \n"
" lfence \n"
);