Может быть очень простые: 1. Если по таймеру вызвалась DPC процедура, и выполняется достаточно долго, что приходит время вызвать снова эту DPC...
Ну, здесь сделав необходимые мне действия я передаю управление старому обработчику прерывания, а для этого надо дальний вызов - запихиваю в стек...
Ну ладно, спасибо и за то, что сказал. Какой код ты бы хотел увидеть? Просто, вот тут _Interrupt: sub long esp, 12 push long LC8 call...
ага, спасибо. Да, я после установки прерывания нового - пишу отладочную печать oldintaddr - вроде тот адрес храниться, который соответствует...
Тут, понимаешь GetIntVect - некорректное название - он же и устаналивает новый адрес, он же и возвращает старый... Правда там надо будет коегде...
Если бы это был Дос, то тогда да... а то это соовсем левая ось. За то, что "А сдвух сторон, потому что прерывание срабатывает при нажатии и...
Я уже ближе к разгадке, но всё равно не понятно... Делаю там сразу, без _oldintaddr: asm("movl $0xF000E987, %eax"); asm("pushl %eax");...
И вот ещё: в переменной unsigned long oldintaddr - лежит, распечатывал, именно старый адрес обработчика, но, когда в Interrupt делаю такую вещь:...
Ой, тут я когда писал, опечатался в Interrupt. Там должно быть asm("movl [_oldintaddr], %eax"), а не asm("movl _oldintaddr, %eax"); Но это ни...
Надо для одной любительской оськи (работает в реалмоде x86) написать собственные обработчики прерываний, ну и вот стал я писать такую...
Имена участников (разделяйте запятой).