Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
0_МПиИСТС_Все главы.doc
Скачиваний:
518
Добавлен:
27.03.2016
Размер:
10.5 Mб
Скачать

6.7. Новые команды микропроцессора Pentium

Микропроцессор Pentium имеет только одну новую команду для работы со стандартным программным обеспечением системы; остальные новые команды добавлены для режима системного управления SMM, идентификации процессора и некоторые другие системные команды. В табл. 6.3 перечислены новые команды, которые добавлены в набор команд микропроцессора Pentium.

Таблица 6.3.

Новые команды микропроцессора Pentium

Команда

Функция

CMPXCHG8B

Сравнивает и обменивает 8 байт содержимого регистров EDX:EAX с приемни-

ком команды

CPUID

Возвращает идентификационный код микропроцессора (CPU)

RDTSC

Считывает из счетчика тактов процессора TSC

RDMSR

Считывает из специфического регистра для модели — регистра MSR

WRMSR

Записывает в специфический регистр для модели — регистр MSR

RSM

Возврат из прерывания системного управления SMM

Команда cmpxchg8b является расширенной командой cmpxchg, дополненной в набор команд микропроцессора 80486. Команда cmpxchg8b сравнивает 64-разрядное число, хранимое в регистровой паре EDX и ЕАХ с содержимым 64-разрядной ячейки памя­ти или регистровой парой, указанной приемником команды. Например, команда cmpxchg8b data1 сравнивает 8 байт содержимого ячейки памяти DATA1 с 64-раз­рядным числом, хранящимся в регистрах EDX и ЕАХ. Если содержимое ячейки DATA1 равно содержимому регистровой пары EDX:EAX, тогда хранимое в этой па­ре регистров 64-разрядное число запоминается в ячейке памяти DATA1. Если же они не равны, то содержимое ячейки DATA1 копируется в регистры EDX:EAX. Об­ратите внимание, что флаг нулевого результата ZF после выполнения команды cmpxchg8b устанавливается, если содержимое регистров EDX.EAX было равно содер­жимому ячейки DATA1 или сбрасывается в противном случае.

Значение регистра ЕАХ до выполнения команды

Результат выполнения команды cpuid

0

ЕАХ = 1 для всех микропроцессоров Pentium

0

EBX:EDX:ECX = идентификация производителя процессора

1

ЕАХ (биты 3—0) = модификация процессора (stepping ID)

1

ЕАХ (биты 7—4) = модель

1

ЕАХ (биты 11—8) = семейство

1

ЕАХ (биты 13—12) = тип

1

ЕАХ (биты 31—14) = зарезервированы и равны нулю

1

EDX (бит 0) = процессор содержит сопроцессор (FPU)

1

EDX (бит 1) = поддержка улучшенного режима виртуального микропроцессора 8086

1

EDX (бит 2) = процессор поддерживает точки останова для ввода-вывода

1

EDX (бит 3) = процессор поддерживает расширенный размер страниц 4 Мбайта

1

EDX (бит 4) = поддержка счетчика TSC

1

EDX (бит 5) = поддержка регистра MSR

1

EDX (бит 6) = зарезервирован

1

EDX (бит 7) = поддержка бита МСЕ в регистре CR4

1

EDX (бит 8) = поддержка команды CMPXCHG8B

1

EDX (бит 9) = микропроцессор с питанием 3,3 В

1

EDX (биты 10—31) = зарезервированы