Активизация дочернего процесса

Parmblk dw 7 dup (0)

Envirseg ends

Fcb_2 db 37 dup (0)

Fcb_1 db 37 dup (0)

Dd fcb_2 ; работы файловой системы

Dd fcb_1 ; блоки, которые необходимы для

Parmblk dw envirseg ; адрес сегмента окружения

Особенности структуры материнской программы

В материнской программе для запуска каждой дочерней программы должен быть выделен блок параметров:

 

dd cmdtail ; адрес «хвоста» команды

chname db ‘CHILD.EXE’, 0 ; путь к файлу дочернего процесса

cmdtail db 9, ‘FILE.TXT’, 0dh ; текстовый файл

envirseg segment para ‘Envir’

db ‘comspec = D:DOScommand.com’, 0

db ‘WORKFILE = A:FILES’, 0

 

В простейшем варианте, когда хвост команды и fsb не используются, блок параметров уменьшается до двух строк:

chname ‘имя.exe’, 0

Для запуска дочернего процесса материнская программа должна выполнить следующее:

· освободить лишнюю память,

· записать в регистр ax номер функции 4b00h,

· записать в пару регистров es:dx адрес строки со спецификацией файла с дочерней программой,

· записать в пару регистров es:bx адрес блока параметров,

· вызвать прерывание INT 21h.

В случае успешного запуска программы флаг CF устанавливается в 0. Если процесс не запущен то в регистре флагов CF=1.

Все открытые файлы дублируются в дочерней программе. Дочерняя программа после своего завершения может возвратить в материнскую программукод завершения, который может быть проверен в материнской программе.