прерывания реального режима

Тема в разделе "WASM.OS.DEVEL", создана пользователем _evil, 2 май 2007.

  1. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    можно ли вызвать из защищенного режима прерывания реального режима (BIOS-овские), если входил в защищенный режим не через DPMI а напрямую установкой cr0.РЕ.
    {имеется в виду не запуск своих установленных в IDTR а BIOS-овские}
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    только если переключиться на время обратно в реальный. так делает загрузчик nt loader на ранней стадии
     
  3. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    А есть ли способы обхитрить, например: в GDTR – поставить 16 –битный код на область 000h-7с00h и сделать call по адресу из 1-го килобайта (который содержит векторы прерываний, их 256 на каждый отводится по 4 байта) ?.{никто не пробовал ?}
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    ну попробуй..
     
  5. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    _evil
    не на 000h-7с00h , а на весь первый мег, наверное..
    это если про страничные преобразования забыть
    и вообще на это есть виртуальный режим
     
  6. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    _evil
    однозначно придется вручную создавать IDT (каждый шлюз должен будет содержать адрес соответствующего обработчика прерывания BIOS) в пространстве [0, 2048)