我正在尝试阅读 MPERF 和 APERF MSR。但是,当我这样做时,机器重新启动,可能是因为 GP 异常。
这是我使用的代码:
; Read MPERF register
mov ecx, 0xe7
rdmsr
代码在 rdmsr 上中断。我有一个英特尔 Haswell 处理器。我正在以长模式运行。
我很确定我在 Ring 0 中运行,因为我运行的是我自己的操作系统。此外,如果我这样做:
; Read PAT register
mov ecx, 0x277
rdmsr
它毫无例外地工作。
读取此特定寄存器 (MPERF) 的其他条件是什么?