Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Cpuid07 мая 2011Оглавление: 1. Cpuid 2. Использование CPUID CPUID ассемблерная мнемоника инструкции процессоров x86, используется для получения информации о процессоре. Используя её, программа может определить тип ЦП и его возможности. Инструкция CPUID впервые появилась в процессорах i486. Потом она начала поддерживаться всеми процессорами начиная с Intel 486DX/SX/DX2 SL, AMD 486DX4, Cyrix 6x86, UMC U5S. Код операции: 0F A2. Проверка поддержки инструкции CPUID процессоромТак как инструкция CPUID отсутствовала в первых процессорах архитектуры x86, перед её использованием следует удостоверится что ЦП её поддерживает. Для этого производится попытка изменить бит 21 регистра EFLAGS. Если бит успешно поменяется, то инструкция CPUID процессором поддерживается. Приведённый ниже исходный код проверяет поддержку инструкции CPUID: pushfd ; размещение регистра EFLAGS в стеке pop eax ; извлечение значения EFLAGS в EAX mov ebx, eax ; сохранение значения в EBX xor eax, 200000h ; изменение 21-го бита push eax ; размещение нового значения в стеке popfd ; сохранение нового значения в EFLAGS pushfd ; снова размещение EFLAGS в стеке pop eax ; значение EFLAGS теперь в EAX xor eax, ebx ; проверка 21-го бита je no_cpuid ; если он не изменился, то CPUID не поддерживается В данном примере используется инструкция XOR, так как она непременно поменяет только 21-й флаг ID не затронув другие. Обратите внимание: здесь используются 32-битные инструкции, поэтому если процессор находится в 16-разрядном режиме, рекомендуется сначала проверить, поддерживает ли процессор 32-битные инструкции. Просмотров: 2208
|