обаботка INT1

Тема в разделе "WASM.ASSEMBLER", создана пользователем VooDooo, 24 апр 2006.

  1. VooDooo

    VooDooo New Member

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

    NullSessi0n New Member

    Публикаций:
    0
    VooDooo

    Ну то что не после каждой команды int 1 это точно. После первого же исключения int 1 TF сбрасывается. И его заново надо устанавливать. Больше ничего сказать не могу.
     
  3. VooDooo

    VooDooo New Member

    Публикаций:
    0
    дело в том что когда сохраняется EFLAGS при прирывании, он остается с установленным TF и при команде IRET все должно повторится, т.е. EFLAGS после IRET снова будет иметь установленный TF. Но вот почему все падает полсле команды IRET с синим экранчиком я не пойму.
     
  4. sergh

    sergh New Member

    Публикаций:
    0
    Может надо iretd?
     
  5. Godness

    Godness Мёртвый дзена

    Публикаций:
    0
    VooDooo



    Где-то ты тупиш, покажи свой код...