такая проблема: написал маленькую процедурку для обработки прерывания под номером 1, меняю вектор в IDT, устанавливаю флаг TF (popfd). Далее каждая команда должна генерировать INT 1 как я понимаю... Получая управление моя процедурка (пока она ничего не делает) просто переходит к выполнению следующей команды, выполняя команду IRET. После первого же IRET заваливается и выдается BSOD. В чем дело???
VooDooo Ну то что не после каждой команды int 1 это точно. После первого же исключения int 1 TF сбрасывается. И его заново надо устанавливать. Больше ничего сказать не могу.
дело в том что когда сохраняется EFLAGS при прирывании, он остается с установленным TF и при команде IRET все должно повторится, т.е. EFLAGS после IRET снова будет иметь установленный TF. Но вот почему все падает полсле команды IRET с синим экранчиком я не пойму.