Решил полностью отказаться от использования TSS. PUSHA/POPA+IRET прекрасно сделают своё дело. Вот только остается проблема с сопроцессором. Каждый раз сохранять и восстанавливать 512 байт при переключении не катит, ИМХО. Также не имеет смысла делать при каждом переключении LTR для установки TS. Есть мысль ручками устанавливать TS, но возникает вопрос, сильно ли скажется
Код:
mov eax,cr0
or eax,8
mov cr0,eax
на скорости переключения, учитывая, что придется переключать CR3 также вручную.
В манах интела не нашёл других способов поднять TS, кроме как ручками и через LTR(Почему STTS нету???). Знает ли кто-нибудь эти самые другие способы? Также интересуют способы вызвать #NM при исполнении инструкций сопроцессора. Выставление EM при запуске системы и эмуляцию сопроцессора не предлагать.