Сборник по задачам и примерам 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

    <


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