Цитата:
Как правильно войти в ring3?
Надо установить CPL=3, других способов нет. А ещё лучше чтобы во всех сегментных регистрах DPL=3.
Цитата:
Сейчас я использую SYSEXIT, но прерывания так не обработать.
Кто сказал?
Цитата:
Чтобы вернуться из процедурного обработчика исключения или прерывания, обработчик должен использовать команду IRET (или IRETD). Команда IRET подобна команде RET за исключением того, что она восстанавливает сохраненные флаги в регистре EFLAGS. Поле IOPL регистра EFLAGS восстанавливается, только если текущий уровень привилегий - 0. Флаг IF изменяется, только если текущий уровень привилегий меньше или равен чем уровень привилегий ввода-вывода (IOPL). Чтобы получить полные описания операций выполняемых командой IRET, то см. Главу 3, “Справочная информация о системе команд A-M", из руководства разработчика программного обеспечения архитектур Intel® 64 и IA-32, Том 2A. Если при вызове процедурного обработчика произошло переключение стека, то команда IRET возвращает исходный стек на место по возвращению.
http://ru.osdev.wikia.com/wiki/IAM:Глава_5