MSR-Model Specific Registers (非一般模块寄存器)
MSR-Model Specific Registers (特殊模块寄存器)一 概念Model Specific Register (MSR) as the name impli
MSR-Model Specific Registers (特殊模块寄存器)
一 概念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 是CPU 的一组64 位寄存器,可以分别通过
RDMSR 和WRMSR 两条指令进行读和写的操作,前提要在ECX 中写入MSR 的地址。对于RDMSR 指令,将会返回相应的MSR 中64bit 信息到(EDX:EAX)寄存器中;对于WRMSR 指令,把要写入的信息存入(EDX:EAX)中,执行写指令后,即可将相应的信息存入ECX 指定的MSR 中。MSR 的指令必须执行在level 0 或实模式下。RDMSR 0F 32 不影响标志位 把ECX指定的模型专用寄存器内容送EDX:EAX RDMSRWRMSR 0F 30 不影响标志位 把EDX:EAX的内容写入ECX指定的模型专用寄存器 WRMSR
三 作用MSR 总体来是为了设置CPU 的工作环境和标示CPU 的工作状态,包括温度控制,性能监控等,具体来说,分为以下几项:1. Thermal2. Frequency3. C State4. Microcode5. EIST6. TM7. Key Features Of CPU8. Voltage9. Cache Control10. MTRR11. DCA(Direct Cache Access)12. Machine Check13. 硬件联机控制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的内容到CPSRMSR SPSR,R0 ;传送R0的内容到SPSRMSR CPSR_c,R0 ;传送R0的内容到CPSR,但仅仅修改CPSR中的控制位域