- •Резидентные программы
- •1.Введение
- •2. Особенности структуры программы типа com
- •3. Требования к структуре резидентной программы, запускаемой с помощью программного прерывания
- •4. Требования к структуре резидентной программы, запускаемой командой call
- •5. Последовательность выполнения работы
- •5.1 Изучение взаимодействия резидентной и транзитной программ через прерывание.
- •5.2. Изучение взаимодействия резидентной и транзитной программ через область межзадачных связей
- •6. Выполнить самостоятельно следующее задание.
- •Тексты программ
5.2. Изучение взаимодействия резидентной и транзитной программ через область межзадачных связей
1. Запустить программу Far Manager.
2. Подготовить с помощью текстового редактора (Shift+F4) файлы программ PRER1.ASM и START1.ASM.
3. Выполнить трансляцию резидентной программы PRER1.ASM и получить файл PRER1.OBJ: TASM /zi PRER1,,
4. С помощью TLINK выполнить компоновку программы PRER1.OBJ и получить загрузочный файл PRER1.COM: TLINK /t PRER1,,
5. Выполнить трансляцию стартовой программы START1.ASM и получить файл START1.OBJ: TASM /zi START1 ,,
6. С помощью программы TLINK получить исполняемый файл START1.EXE: TLINK /v START1,,
7. Загрузить отладчик и программу PRER1 командой
TD.EXE PRER1.COM:
8. Открыть окно CPU отладчика (View > CPU. )
9. Выполнить программу в шаговом режиме до конца. Появится сообщение, что программа оставлена в памяти резидентной.
10. В области памяти межзадачных связей найти установленные резидентной программой адреса точки входа в программу.
Для этого следует перейти в отладчике на панель памяти, нажать правую кнопку, в меню выбрать GO TO, ввести адрес 40h:0F0h.
11. Выйти из отладчика (ALT+X). На экране появится окно системной программы COMMAND.COM с командной строкой.
12. При успешном завершении введите в командную строку имя файла START1.EXE и нажмите Enter. На экране появятся текстовые сообщения, выведенные программами.
13. Ввести в командную строку команду EXIT и нажать Enter.
Внимание!
Запускать программы на исполнение можно без использования отладчика TD.EXE в такой последовательности: первой следует запустить из командной строки программу PRER1.COM, второй – START1.COM.
6. Выполнить самостоятельно следующее задание.
Разработать три программы, выполняющие следующие задачи:
1. Стартовая программа запускает по очереди две резидентные программы и передает им параметры через область межзадачных связей. В качестве параметров использовать адреса текстовых сообщений, размещенных в стартовой программе.
2. Первая резидентная программа должна запускаться командой вызова прерывания.
3. Вторая резидентная программа должна запускаться через область межзадачных связей.
4. Сообщения, выводимые на экран программами, должны информировать об их успешном завершении.
Примечание.
Отладку программ можно выполнять без использования отладчика!
После получения загрузочных модулей (COM, EXE) резидентных и стартовой программ загружать их в оперативную память на исполнение следует в такой очередности: сначала последовательно загрузить командной строкой резидентные, потом – стартовую.
7. Контрольные вопросы
1. Какая программа называется резидентной ?
2. Какие особенности структуры резидентной программы ?
3. Как можно запустить резидентную программу ?
4. Как создать файл типа .СОМ ?
5. Как можно передать параметры из стартовой программы в резидентную и наоборот ?
6. Каково назначение операторов RET, IRET, INT 20Н ?
7. Чем отличаются файлы типа .ЕХЕ от файлов типа .СОМ ?
8. Где расположена в оперативной памяти таблица векторов прерываний и область межзадачных связей ?
