Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
RDPMC
Влияние команды на флаги и форматы команды:
|
|
|
|
|
|
|
|
|
0F 33 |
RDPMC |
Загрузить данные из счетчика мониторинга производительности, заданного значением в ECX в регистры EDX:EAX |
Pentium |
rdpmc |
Описание:
Два 40-разрядных счетчика мониторинга производительности были введены в архитектуру процессоров Intel начиная с Pentium. В Pentium, … Pentium III они реализованы как особые регистры модели с возможностью доступа к ним через привилегированные команды RDMSR (чтение) и WRMSR (запись). В процессоры, начиная с Pentium MMX, введена новая команда RDPMC, которая предназнаена исключительно для доступа к указанным счетчикам.
При выполнении команды RDPMC входное значение в регистре ECX указывает один из 40-битных счетчиков мониторинга производительности процессора. Содержимое заданного счетчика копируется в EDX:EAX. EDX загружается старшими 8 битами, а EAX — младшими 32 битами.
Когда флаг CR4.PCE сброшен, команда RDPMC может выполняться только в защищенном режиме при уровне привилегий равном 0, когда же этот флаг установлен, команда RDPMC перестает быть привилегированной и становится доступной во всех режимах. При исполнении команды в режиме 16-битного размера операндов она все равно использует 32-битное входное значение в ECX и возвращает полное 40-битное значение в EDX:EAX.
Команда RDPMC поддерживается различными модификациями процессоров, в т.ч. и некоторыми клонами, но она не входит в стандартный набор, поэтому перед ее использованием программы должны выполнять команду CPUID и проверять наличие поддержки команды RDPMC.
Операция:
IF (ECX = 0 OR 1) AND ((CR4.PCE = 1) OR ((CR4.PCE = 0) AND (CPL = 0)))
THEN
EDX:EAX = PMC[ECX];
ELSE (* ECX > 1 и/или CR4.PCE = 0 и CPL > 0 *)
#GP(0);
FI;
Особые ситуации защищенного режима:
#GP(0), если CR4.PCE = 0 и текущий уровень привилегий CPL не равен 0 или входное значение в ECX не содержит корректного номера счетчика мониторинга производительности (0 или 1 для процессоров Pentium, … Pentium III).
Особые ситуации режима реальной адресации:
#GP, если CR4.PCE = 0 или входное значение в ECX не содержит корректного номера счетчика мониторинга производительности (0 или 1 для процессоров Pentium, … Pentium III).
Особые ситуации режима V86:
#GP(0), если CR4.PCE = 0 или входное значение в ECX не содержит корректного номера счетчика мониторинга производительности (0 или 1 для процессоров Pentium, … Pentium III).
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru