![]() |
|
|
![]()
|
|
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Резидентная программа перехватила обработчики некоторых прерываний и сохранила их старые адреса. Для выгрузки надо проверить, что текущие векторы прерываний указывают на резидент. Если это так - просто восстанавливаем старые адреса обработчиков. Если это не так - то сверху стоИт ещё один перехват, и надо принимать специальные меры, которые заключаются в оставлении после себя "заглушки", переадресующей напрямую на сохранённый адрес (far jmp ptr, 5 байт всего). После чего блоки памяти, занимаемые резидентом, освобождаются (в первом случае) либо урезаются (во втором) соотв. функцией 21 прерывания. Впрочем, во втором случае бывает, что на заглушки находится место в, например, блоке среды резидентной части (например, если резидент работал с файлами, блок среды при постановке наверняка не освобождался). -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "Asm для Windows/DOS" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |