Вопрос № 78004: Уважаемые эксперты! Ответе,пожалуйста зачем в программе нужно 2 раза проверять на загрузку? (Ведь каждый раз при запуске операционная система программе выделяет другой сегмент памяти.)...
Вопрос № 78.004
Уважаемые эксперты! Ответе,пожалуйста зачем в программе нужно 2 раза проверять на загрузку? (Ведь каждый раз при запуске операционная система программе выделяет другой сегмент памяти.)
Приложение:
Отправлен: 12.03.2007, 19:28
Вопрос задал: Loriendil (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Loriendil!
Начнем с того, что программа состоит из двух частей:
1) инициализация
2) собственно, резидент
Так вот, как работает программа?
Если она в инициализации не получит ответа 9988h, то делается вывод, что запущена первый раз, тогда устанавливает новый обработчик прерывания и завершается, оставаясь резидентно в памяти.
Если же при запуске получит ответ 9988h (а ответит резидент, который уже сидит в памяти после первого запуска!), то повторной установки вектора не будет. Программа выдает сообщение и просто завершается.
Обрати внимание: проверки осуществляются в разное время и в разных функциональных модулях - резиденте и инициализации!
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 12.03.2007, 20:57 Оценка за ответ: 5