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