Интернет магазин китайских планшетных компьютеров



Компьютеры - Резидентная программа - Инициализация резидентной программы

23 января 2011


Оглавление:
1. Резидентная программа
2. Основные понятия
3. Структура резидентной программы
4. Инициализация резидентной программы
5. Решение пpоблемы повтоpного запуска
6. Взаимодействие новых и стаpых обpаботчиков пpеываний.
7. Уpовни сложности TSR и взаимодействие новых ISR дpуг с дpугом.



Для использования прерывания 27h сегментный регистр CS должен указывать на PSP программы, а в регистре DX должно быть записано смещение последнего байта программы плюс один байт. Нетрудно заметить, что этот способ остаться резидентной больше всего подходит для программ в формате COM. Вы не сможете оставить резидентной программу длиннее 64 килобайт.

Другой, более удобный способ - использовать функцию 31h прерывания INT 21h. В регистре AL вы можете указать код завершения программы, регистр DX в этом случае должен содержать длину резидентной части программы в параграфах. Здесь уже нет ограничения 64 килобайта на длину программы. Использование этой функции - единственная возможность оставить резидентной программу длиннее 64 килобайт.

Но не стоит увлекаться длинными TSR-программами, так как обычно освободить память, занимаемую ставшей уже ненужной резидентной программой, можно только с помощью перезагрузки операционной системы.

Библиотека функций Quick C содержит специальную функцию для оставления программы резидентной в памяти. Эта функция использует прерывание INT 21h и имеет имя _dos_keep. Первый параметр функции - код завершения, а второй - длина резидентной части программы в параграфах.



Просмотров: 7414


<<< Расширение (ПО)