Курсовая работа: Робота в захищеному режимі мікропроцесора
jz @end_cpuid { Если бит AC не меняется: }
db 66h { микропроцессор: 80386 }
push cx
db 66h
popf { Восстановить AC бит в EFLAGS }
@80486: { Проверка МП i486 и последующих моделей: }
{ установка/сброс ID флага (бит 21) в EFLAGS }
{ указывает на выполнимость команды CPUID на данном МП }
mov cpu_type,4 { Микропроцессор: i486 }
db 66h
mov ax,cx { Получить исходное значение EFLAGS }
db 66h,35h { Изменить командой XOR бит ID в EFLAGS }
dd 200000h
db 66h
push ax { Сохранить новое значение в стеке }
db 66h
popf { Занести новое значение в EFLAGS }
db 66h
pushf { Записать его в стек }
db 66h
pop ax { Переписать в EAX }
popf { Восстановить EFLAGS }
db 66h
xor ax,cx { Если бит ID не меняется: }
je @end_cpuid { МП не поддерживает команду CPUID }
{ Выполнение команды CPUID для определения }
{ фирмы, семейства, модели микропроцессора }
mov id_flag,1 { Установка флага }
{ выполнения МП команды CPUID }