Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[ASM] Chingachguku 18.10.01 09:32 Число просмотров: 911
Автор: Chingachguk <Chingachguk> Статус: Member
|
> int 16h ? > Не так давно в статье от одного умного человека я > прочитал,что в защищенном режиме int 09h вообще не > используется, а int 16h используется для чего-то другого - > но точно не для определения нажатых клавиш.
А вот и нет. Винды 95/98 при своей работе используют некоторые сервисы биоса(В любых задачах - и в вордах, и т.п.).Скажем, для работы с винтом вовсю вызывается оригинальный Int 13h, для получения нажатых клавиш - оригинальный обработчик int 16h реального режима. Видимо, для их вызова винда переключается в режим v86. А вот для работы с дискетами у винды есть свой собственный драйвер, и оригинальный биос не вызывается. Почему так ? Видимо, ребята не рискнули полностью взять на себя работу с устройствами ... Так вот, когда винда при разборе autoexec.bat обнаруживает обработчик прерывания, котрое она собирается вызывать в дальнейшем - в нашем случае int 16h - то дает ему все те же права и точно так же вызывает, как и оригинальный код bios- через v86... А вот любой обработчик int 9h она почему-то не хочет вызывать всякий раз, а только лишь в дос-задачах (посмотри, что будет с keyrus-ом). Так что смело можешь писать резидента к int 16h - при загрузке через autoexec он будет получать управление при нажатии клавиш в любых задачах ...
ps А вот в NT такой фокус не пройдет - у них все драйверы свои. Наверное, и в более продвинутых системах типа linux - тем более.
|
- [ASM] - J 16.10.01 09:39 [811]
- [ASM] - finder 20.10.01 10:47 [959]
- [ASM] - Chingachguk 16.10.01 11:16 [925]
- [ASM] Chingachguku - J 18.10.01 08:14 [900]
- [ASM] Chingachguku - Chingachguk 18.10.01 09:32 [911]
|
|
|