Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Резидентная программа - Инициализация резидентной программы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
|