Иллюстрированный самоучитель по задачам и примерам Assembler

Команды 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-регистр, номер которого задан в регистре ЕСХ.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.