Команды RDMSR и WRMSR
Команда RDMSR (ReaD from Model Specific Register) выполняет чтение из MSR-регистра.
Действие команды заключается в проверке двух условий:
- во-первых, проверяется наличие нулевого уровня привилегированности кода,
- во-вторых, проверяется наличие в регистре ЕСХ значения, адресующего один из MSR-регистров.
Если хотя бы одно из этих условий не выполняется, то выполнение команды RDMSR заканчивается. Если выполняются оба условия, то значение MSR-регистра, адресуемого содержимым регистра ЕСХ, помещается в пару 32-битных регистров EDX:EAX.
Команда WRMSR (WRite to Model Specific Register) производит запись значения в один из 64-разрядных MSR-регистров.
Действие команды заключается в проверке тех же двух условий:
- во-первых, проверяется наличие нулевого уровня привилегированности кода,
- во-вторых, проверяется наличие в регистре ЕСХ значения, адресующего один из MSR-регистров.
Если хотя бы одно из этих условий не выполняется, то работа команды заканчивается. Если выполняются оба условия, то значение пары 32-битных регистров EDX: ЕАХ пересылается в 64-битный MSR-регистр, номер которого задан в регистре ЕСХ.