logo
несколько программ / bsp33

МодельIntel 80386

Для того чтобы отличить процессорIntel 80386 от процессоров старших моделей, можно попробовать установить в регистреEFLAGS бит 18. Этот бит был впервые определен в процессореIntel 80486 для сигнализации ошибки выравнивания. Его невозможно установить в процессореIntel 80386.

В процессе проверки программа вначале получает исходное содержимое регистра EFLAGS, записывая его в регистры EAX и ECX:

pushfd

pop eax

mov ecx, eax

Далее программа инвертирует значение бита 18 и записывает полученный результат в регистр EFLAGS:

xor eax, 40000h

push eax

popfd

На последнем шаге идентификации новое содержимое регистра EFLAGS извлекается и сравнивается со старым:

pushfd

pop eax

xor eax, ecx

jz is_80386

Если бит 18 не изменил своего значения, мы имеем дело с процессором Intel 80386.