ВУЗ:
Составители:
Рубрика:
- 30 -
рое будет приводить к завершеещение Размер поля Значение
0H DW номер функции DOS завершения программы
2H DW размер памяти в параграфах
4H DW резерв
6H DD длинный вызов функции диспетчера DOS
AH DD адрес завершения (IP, CS)
EH DD адрес выхода по Ctrl-Break (IP, CS)
12H DD адрес выхода по критической ошибке
16H 22 байта резерв
2CH DW номер параграфа строки среды
2EH 46 байтов резерв
5CH 16 байтов область параметров 1 (формат FCB)
6CH 20 байтов область параметров 2 (формат FCB)
80H 128 байтов область DTA по умолчанию/получает
командную строку программы
Сохранение программы в памяти после завершения
Программы, оставленные резидентными в памяти, могут служить
в качестве утилит для других программ. Обычно такие программы вы-
зываются через неиспользуемый вектор прерывания. MS DOS рассмат-
ривает такие программы как часть операционной системы, защищая их
от наложения других программ, кот орые будут загружены впоследс-
твии. Резидентные программы обычно пишутся в форме COM. Програм-
мы, написанные в форме EXE оставить резидентными в памяти сложнее.
Завершение программы прерыванием 27H оставляет ее резидент-
ной в памяти. CS должен указывать на начало PSP для того, чтобы
эта функция работала правильно. В программах COM CS сразу уста-
навливается соответствущим образом, поэтому надо просто завершить
программу прерыванием 27H. В программах EXE CS первоначально ука-
зывает на первый байт, следующий за PSP (т.е. 100H).
При нормальном завершении EXE программы последняя инструкция
RET выталкивает из стека первые положенные туда значения:
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »