1
我正在嘗試讀取MPERF和APERF MSR。但是,當我這樣做時,機器會重新啓動,可能是因爲GP異常。閱讀MSR MPERF的條件是什麼?
這裏是我使用的代碼:
; Read MPERF register
mov ecx, 0xe7
rdmsr
代碼打破上RDMSR。我有一個英特爾Haswell處理器。我在長時間模式下運行。
我很確定我在Ring 0中運行,因爲我正在運行我自己的操作系統。此外,如果我這樣做:
; Read PAT register
mov ecx, 0x277
rdmsr
它毫無例外地工作。
讀取此特定寄存器(MPERF)的其他條件是什麼?
我不知道IOPL。但是,我已經在使用8042控制器的IN/OUT指令了,所以我確實在Ring 0中。 –
此外,我嘗試在0x277上使用rdmsr,它工作正常。 –
@Baptiste Wicht - 酷你自己的操作系統:),我喜歡它,所以在這種情況下*也許*這個寄存器是融合了,需要通過讀取CPUID檢查其啓用我猜 –