В пользовательской ОС, работающей в защищенном режиме x86, есть способ получить текущий уровень привилегий, кроме, например, выполнение привилегированной инструкции и просмотр, если она сработает?Текущий уровень привилегий x86 на пользовательской ОС
Например, регистр CR0
содержит бит PE
, который указывает, работает ли он в реальном режиме или в защищенном режиме и может быть легко извлечен с использованием ассемблерного кода.
Есть ли что-то эквивалентное для уровня привилегий?
Intel architecture software developer manual упоминает, что регистр EFLAGS
содержит два разряда IOPL
, связанные с уровнями привилегий ввода-вывода. Это то же самое, что и текущий уровень привилегий (CPL)?
Вы имеете в виду что-то вроде 'mov ax, cs/and al, 03h'? –
Он не упомянул, что то, что он действительно пытается сделать, это включить SSE: http://stackoverflow.com/questions/31563078/how-do-i-enable-sse-for-my-freestanding-bootable-code/, но изменение «CR0» и «CR4» не работало. –