|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.10.2010, 13:00 | #1 |
Форумчанин
Регистрация: 18.09.2009
Сообщений: 133
|
Подмена прерывания 09h
Всем доброго времени суток... мне нужно написать свой обработчик 9 прерывания..из порта 60h берется скан-код клавиши, потом командой XLAT из таблицы выбирается значение ASCII-кода и посылает его в буфер клавиатуры...(например, если скан-код 30h, то из таблицы берется 31 байт, который содержит ASCII-код буквы 'a')...но у меня, почему-то, это не работает...при нажатии на разные клавиши выдает на экране всякую хрень...в чем проблема, подскажите пожалуйста...
Код:
|
14.10.2010, 13:04 | #2 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,162
|
JeyKip
грузишь дос с дискетки/флешки или пытаешься работать со своей программой из под Винды? Под Виндовс работа с портами и 21-ым прерыванием только эмулируется и порой не всегда удачно... |
14.10.2010, 13:14 | #3 |
Форумчанин
Регистрация: 18.09.2009
Сообщений: 133
|
работаю с под Винды...недавно писал резидентную процедуру по генерации звука посредством таймера, там тоже необходимо было работать с портами и подменой 9 прерывания...но только там сравнивал определенные символы, а иначе вызывал оригинальное, сохраненное в 60h...и все работало...а в этой программе, вроде, XLAT работает некорректно...пробовал ввести в al 30 перед XLAT, чтобы при каждом нажатии клавиши выводилось на экран a, но выдавал какой-то псевдографический символ...(( уже сломал голову...((
|
14.10.2010, 13:18 | #4 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,162
|
JeyKip
мой совет -- загрузись под "чистым DOS" по резидентам есть в книге Зубкова "Assembler для DOS, Windows и UNIX" |
14.10.2010, 13:29 | #5 |
Форумчанин
Регистрация: 02.04.2008
Сообщений: 358
|
Код:
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666 mail: airyashov(а)inbox.ru |
14.10.2010, 13:39 | #6 |
Форумчанин
Регистрация: 18.09.2009
Сообщений: 133
|
вот с этим я тоже запутался...были мысли, что программа просто адрес таблицы не может увидеть...пробовал так же, только через es...то же самое...как мне узнать и загрузить реальный адрес таблицы...?
Последний раз редактировалось JeyKip; 14.10.2010 в 13:42. |
14.10.2010, 14:25 | #7 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,162
|
можно адресоваться через CS
|
14.10.2010, 23:10 | #8 |
Форумчанин
Регистрация: 02.04.2008
Сообщений: 358
|
Код:
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666 mail: airyashov(а)inbox.ru |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
перехват прерывания прямым доступом и 09h | Nuander | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 25.04.2010 12:24 |
подмена порта | Bertrance | Свободное общение | 9 | 06.02.2010 08:30 |
подмена клавиши А на B | GeneralSan | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 23.12.2009 20:28 |
Блокировка клавиши. Перехват 09h. Порты. | Anrih | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 18.09.2009 23:12 |
Подмена IP ? | KAKTYC | PHP | 2 | 28.10.2008 00:14 |