Сборник по задачам и примерам Assembler



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



Команда 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 HI
    Xeon
    0110 0011 Pentium II OverDrive
    <

    Содержание  Назад  Вперед