Активизация дочернего процесса
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.
Все открытые файлы дублируются в дочерней программе. Дочерняя программа после своего завершения может возвратить в материнскую программукод завершения, который может быть проверен в материнской программе.