ВУЗ:
Составители:
117
Глава 4 Резидентные программы в MS-DOS
4.1 Специфика резидентных программ
Резидентная программа – это программа, постоянно находящаяся в
оперативной памяти ЭВМ. Иначе такие программы называют TSR-
программами (Terminate and Stay Resident). В качестве резидентных
программ часто выполняют различные обработчики клавиатуры (в том
числе русификаторы) калькуляторы, всевозможные справочники и т.д.
Резидентная программа может быть как типа .COM, так и .EXE,
однако
, учитывая постоянный дефицит основной памяти, такие программы
чаще выполняют типа .COM.
Для того чтобы использовать уже находящуюся в памяти программу,
ей необходимо передать управление. Специфика передачи управления
резидентной программе заключается в том, что вызывающая и вызываемая
(резидентная) программы загружаются и запускаются независимо друг от
друга, поэтому необходимы специальные меры для сообщения
вызывающей программе адреса резидентной программы.
Передать управление резидентной программе можно тремя
способами:
• Вызвать ее командой CALL как обычную процедуру (под программу).
Однако для этого необходимо после загрузки резидентной программы
узнать ее расположение в памяти с помощью какой-либо служебной
программы, например mi (memory information);
• Использовать какое-либо аппаратное прерывание (например,
прерывание от
таймера) для периодической пере дачи управления
резидентной программе;
• Использовать программное прерывание. Для этого резидентная
программа должна соответствующим образом установить вектор
программного прерывания, который будет использован для ее вызова.
Для пользователя в MS-DOS зарезервированы векторы 60h – 66h, а
также F1h
• FFh. В этом случае резидентная программа должна завершаться
командой возврата из прерывания IRET.
Адрес резидентной программы можно передать прикладной
программе также в области данных BIOS, предназначенной для связи
программ (40h:F0h – 40h:FFh). В этой же области прикладная программа
может передавать адреса массивов данных, которые должны быть
переданы резидентной программе, а также получать адреса массивов
данных, возвращаемых резидентной программой.
Резидентная программа после загрузки ее в память фактически
становится частью
операционной системы, поэтому к ней относится и
такое свойство MS-DOS, как нереентерабельность (т.е. она не обладает
117
Глава 4 Резидентные программы в MS-DOS
4.1 Специфика резидентных программ
Резидентная программа – это программа, постоянно находящаяся в
оперативной памяти ЭВМ. Иначе такие программы называют TSR-
программами (Terminate and Stay Resident). В качестве резидентных
программ часто выполняют различные обработчики клавиатуры (в том
числе русификаторы) калькуляторы, всевозможные справочники и т.д.
Резидентная программа может быть как типа .COM, так и .EXE,
однако, учитывая постоянный дефицит основной памяти, такие программы
чаще выполняют типа .COM.
Для того чтобы использовать уже находящуюся в памяти программу,
ей необходимо передать управление. Специфика передачи управления
резидентной программе заключается в том, что вызывающая и вызываемая
(резидентная) программы загружаются и запускаются независимо друг от
друга, поэтому необходимы специальные меры для сообщения
вызывающей программе адреса резидентной программы.
Передать управление резидентной программе можно тремя
способами:
• Вызвать ее командой CALL как обычную процедуру (под программу).
Однако для этого необходимо после загрузки резидентной программы
узнать ее расположение в памяти с помощью какой-либо служебной
программы, например mi (memory information);
• Использовать какое-либо аппаратное прерывание (например,
прерывание от таймера) для периодической пере дачи управления
резидентной программе;
• Использовать программное прерывание. Для этого резидентная
программа должна соответствующим образом установить вектор
программного прерывания, который будет использован для ее вызова.
Для пользователя в MS-DOS зарезервированы векторы 60h – 66h, а
также F1h
• FFh. В этом случае резидентная программа должна завершаться
командой возврата из прерывания IRET.
Адрес резидентной программы можно передать прикладной
программе также в области данных BIOS, предназначенной для связи
программ (40h:F0h – 40h:FFh). В этой же области прикладная программа
может передавать адреса массивов данных, которые должны быть
переданы резидентной программе, а также получать адреса массивов
данных, возвращаемых резидентной программой.
Резидентная программа после загрузки ее в память фактически
становится частью операционной системы, поэтому к ней относится и
такое свойство MS-DOS, как нереентерабельность (т.е. она не обладает
Страницы
- « первая
- ‹ предыдущая
- …
- 115
- 116
- 117
- 118
- 119
- …
- следующая ›
- последняя »
