![]() |
|
![]() ![]() ![]() |
|
Vova_Bonch |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 31.10.2006 Репутация: нет Всего: нет |
В книге Калашникова дан листинг резидентной программы, перехватывающей 9 функцию int 21h. Я пытаюсь перехватить int 16h 10 функцию, т.е. при нажатии клавиши пользователем программа должна выводить нашу строку, засунутую в обработчик. Вот измененный мною код (не работает)
![]()
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Ну-ка, вектор какого прерывания валяется в области памяти по имени int_21h_vect? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Vova_Bonch |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 31.10.2006 Репутация: нет Всего: нет |
Вектор 16 прерывания*)
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
И что должна сделать функция 10 прерывания 16, если ей скормить адрес какой-то строки в DS:DX?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Vova_Bonch |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 31.10.2006 Репутация: нет Всего: нет |
По нажатию любой клавиши пользователем выводить сообщение my_string+) Как тогда корректно сделать?
|
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Либо выводить строку с использованием функций прерывания 10h, либо вызывать 21h (из обработчика int 16h/fn 10h это безопасно), т.е.
заменить на
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Vova_Bonch |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 31.10.2006 Репутация: нет Всего: нет |
Большое спасибо+)
![]() |
|||
|
||||
Vova_Bonch |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 31.10.2006 Репутация: нет Всего: нет |
Не подскажете, почему виснет прога?
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Перед вызовом старого обработчика прерывания рекомендуется в стек помещать таки текущее состояние флагов.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
...и не вызывать в обработчике 9го прерывания процедуру обработки 9го прерывания.
Vova_Bonch, перед написанием резидентов нужно освоить хотя бы написание обычных программ. причем желательно не просто написание(copy-past), а и понимание происходящего. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
в смысле 21-го -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
![]() а что ты предлагаешь? полностью отрезать предыдущий обработчик? боюсь, будет весело... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
dumb, да, сорри, туплю...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |