![]() |
|
![]() ![]() ![]() |
|
Freeman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 29.11.2003 Репутация: нет Всего: нет |
Возникла небольшая проблемка, суть ее в следующем: необходимо перехватить прерывания от клавы и при этом узнать какая клавиша была нажата. У меня получается только перехват до нажатия клавиши, а вот после я что-то не могу додуматься как сделать. Если можно поясните исходником, плз.
Это сообщение отредактировал(а) Freeman - 8.5.2005, 18:17 |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Если обычный способ, то обычно перехватывают прерывание int 9. В этом случае сначала управление передается на перехватчик, затем вызвают оригинальный код BIOS:
@@StartMyInt9Handler: pusha push ds push es ; Call original BIOS code pushf call dword ptr cs:OldInt9Handler ; Now key in BIOS kbd buffer ; We can get it: ; use address 0040:001A = ptr to last key ; call int 16h, func 01h - get key ... В аттаче пример моего русификатора. Но можно перехватывать int 16h, так наверное даже проще. Присоединённый файл ( Кол-во скачиваний: 8 ) ![]() -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |