複製鏈接
請複製以下鏈接發送給好友

MSR

(CPU的一組64位寄存器)

鎖定
MSR是CPU的一組64位寄存器,可以分別通過RDMSR和WRMSR 兩條指令進行讀和寫的操作,前提要在ECX中寫入MSR的地址。

目錄

MSR概念

Model Specific Register (MSR) as the name implies is model specific and may change from processor model number (n) to processor model number (n+1).

MSR讀寫方法

對於RDMSR 指令,將會返回相應的MSR 中64bit 信息到(EDX:EAX)寄存器中;對於WRMSR 指令,把要寫入的信息存入(EDX:EAX)中,執行寫指令後,即可將相應的信息存入ECX 指定的MSR 中。MSR 的指令必須執行在level 0 或實模式下。

MSR作用

MSR 總體來是為了設置CPU 的工作環境和標示CPU 的工作狀態,包括温度控制,性能監控等,具體來説,分為以下幾項:
1. Thermal
2. Frequency
3. C State
4. Microcode
5. EIST
6. TM
7. Key Features Of CPU
8. Voltage
9. Cache Control
10. MTRR
11. DCA(Direct Cache Access)
12. Machine Check
13. 硬件聯機控制
14.other
Model Specific Register (MSR)
MSR指令
MSR指令的格式為:
MSR{條件} 程序狀態寄存器(CPSR或SPSR)_<域>,操作數
MSR指令用於將操作數的內容傳送到程序狀態寄存器的特定域中。其中,操作數可以為通用寄存器或立即數。<域>用於設置程序狀態寄存器中需要操作的位,32位的程序狀態寄存器可分為4個域:
位[31:24]為條件標誌位域,用f表示;
位[23:16]為狀態位域,用s表示;
位[15:8]為擴展位域,用x表示;
位[7:0]為控制位域,用c表示;
該指令通常用於恢復或改變程序狀態寄存器的內容,在使用時,一般要在MSR指令中指明將要操作的域。
指令示例:
MSR CPSR,R0 ;傳送R0的內容到CPSR
MSR SPSR,R0 ;傳送R0的內容到SPSR
MSR CPSR_c,R0 ;傳送R0的內容到CPSR,但僅僅修改CPSR中的控制位域 [1] 
參考資料