【发布时间】:2011-07-25 04:25:46
【问题描述】:
我想检查 RDTSC 指令是否可用。必须有 Intel Pentium 或更新的处理器,并且寄存器 CR4 中的 TSD 标志清零或已设置且 CPL 等于 0。
因此,获取当前的特权级别(CS 段寄存器的位 0 和位 1)是没有问题的。检查指令本身是否支持也没有问题(CPUID.1:EDX[4] = 1)。
但是(这就是问题所在),这也必须在用户模式 (PL3) 下运行。但是,我无法在用户模式下读取控制寄存器 CR4。
有没有其他方法可以检查操作系统是否确实限制了对时间戳计数器的访问?
【问题讨论】:
标签: operating-system intel assembly privileged-functions