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

Команда CPUID – получение информации о текущем процессоре

Для получения информации о процессоре необходимо в регистр ЕАХ поместить параметр – одно из значений 0, 1 или 2.

Если ЕАХ = 0, то в регистрах ЕАХ, ЕВХ, EDX, ЕСХ формируется следующая информация:

  • ЕАХ = n, где n – максимально допустимое значение параметра, которое может быть помещено в регистр ЕАХ для задания режима сбора информации;
  • (EBX)+(EDX)+(ECX) – в этих регистрах содержится строка-идентификатор процессора Geninnelntel.

Если ЕАХ = 1, то в регистрах процессора сформируется следующая информация:

  • ЕАХ = n – информация о микропроцессоре (см. табл. 8.1 и 8.2);
  • EDX = n – информация о возможностях процессора (см. табл. 8.3).

Если ЕАХ = 2, то в регистрах ЕАХ, ЕВХ, ЕСХ и EDX формируется информация о кэшпамяти первого уровня и TLB-буферах. Первый байт регистра ЕАХ содержит число, означающее, сколько раз необходимо последовательно выполнить команду CPUID для получения полной информации о кэш-памяти первого уровня и TLB-буферах.

Другие байты регистра ЕАХ и все байты регистров ЕВХ, ЕСХ и EDX содержат однобайтовые дескрипторы, характеризующие кэш-память и TLB-буферы (см. табл. 8.4). Старший бит каждого регистра характеризует достоверность информации в регистре. Если он равен нулю, то информация достоверна, иначе – регистр не используется.

Таблица 8.1. Поля регистра ЕАХ после выполнения команды CPUID (при ЕАХ = 1).

Биты ЕАХ Назначение
0…3 Версия изменений модели
4…7 Модель в семействе (см. табл. 8.2)
8…11 Семейство микропроцессоров (см. табл. 8.2)
12…13 Тип процессора (00 – обычный процессор; 01 – Overdrive-процессор; 10 – процессор для использования в двухпроцессорных системах)

Таблица 8.2. Значения бит 4…7 и 8…11 регистра ЕАХ.

Биты ЕАХ (8…11) Биты ЕАХ (4…7) Тип процессора
0100 0000 или 0001 I486DX
0100 0010 I486SX
0101 0010 Pentium 75-200
0101 0100 Pentium MMX 166-200
0110 0001 Pentium Pro
0110 0011 Pentium II, модель 3
0110 0101 Pentium II, модель 5,
Pentium II Xeon
0110 0110 Celeron, модель 6
0110 0111 Pentium III и Pentium III Xeon
0110 0011 Pentium II OverDrive
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.