Для того чтобы отличить процессор
Для того чтобы отличить процессор 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.