|
Для программ типа .COM операци-
онная система MS-DOS устанавливает стек в начало наивысшего адре-
са доступной памяти в общем сегменте, который используется для
программного кода, данных и стека. Если вершина стека не настраи-
вается внизу сегмента, то может быть защищено до 64 Кбайт порож-
дающей программы. |
avast 4 server |
|
{img2} |
английский словарь |
|
Если же стек настраивается внизу сегмента, то
все, что находится в стеке, будет потеряно (например, при возвра-
те в MS-DOS). Конечно, возврат в MS-DOS в стеке не нужен, если
используется функция с кодом 4Ch.
Наследство и управление порожденной программой
Даже если порожденная программа автономна, порождающая прог-
рамма все же имеет степень воздействия на поведение порожденной
программы. |
asplinux |
|
|
Это воздействие выполняется через наследство, т.е.
возможность порождающего процесса воздействовать каким-либо обра-
зом на связь порожденного процесса с остальной системой.
Из Рис. 3-13 можно видеть, что порождающий процесс применяет
порожденный процесс с командной строкой, блоком среды (или с бло-
ком порождающего процесса, если блок не указан в вызове EXEC) и
блоками управления файлами. |
антивирус |
|
|
архиватор winrar, norton, Навигационные системы, win zip, немецко русский словарь, .
бухгалтерия
|
| .----------------.
|Система или по- | | | |
|рождающая прог- | | | ... |
| рамма | | | |
| ... | ----->|----------------|
| | |Адрес загрузоч- |
xxxx:0000 |----------------|<-----------------|ного сегмента |
| Программный код| |----------------|
| ... | |Фактор настройки|
|----------------| |----------------|
| | | |
\/\/\/\/\/\/\/\/ \/\/\/\/\/\/\/\/
Рис.3-14. Блок параметров для функции 4Bh (al = 3) -
LOAD OVERLAY (Загрузка оверлейной программы)
Между загрузкой оверлейной и исполнимых программ имеется су-
щественное отличие. Оверлейная программа загружается под управле-
нием порождающей программы по адресу, определенному порождающей
программой, и считается частью порождающей программы. Программные
файлы, предназначенные для выполнения (функция 4Bh с регистром AL
= 0), загружаются по адресу, выбираемому системой MS-DOS, и рас-
сматриваются как отдельная программа.
Загрузка и выполнение программ через MS-DOS (код 4Bh с AL=0)
При использовании функции загрузки и выполнения MS-DOS тре-
бует не только достаточного количества свободной памяти для за-
грузки программного загрузчика файла COMMAND.COM, но также
достаточное количество свободной памяти для размещения новой
- 3-49 -
программы. Эта память используется также для создания блока на-
чального распределения новой программы. Вспомните, что блок на-
чального распределения порождающей программы должен быть установ-
лен достаточно большим для предохранения текущей программы, или
перезаписи блока операционной системой MS-DOS при загрузке новой
программы. Кроме того, большинство резидентных подпрограмм или
RTL написаны в формате типа .COM.
|
|
|