Читайте также:
|
|
Здесь `BREAK=OFF` и `BUFFERS=20`OC взяла из CONFIG.SYS. Строку с путем к COMMAND.COM COMSPEC (command specification) подставил MS DOS, либо была выдана команда SET COMSPEC=... из AUTOEXEC или с командной строки MS DOS. Аналогично команда `PROMPT …`. Строка `WP …` появилась из-за выдачи команды SET WP=. Путь к программе указывается полным с указанием дисковода и каталогов. Для передачи каких-то специальных параметров может использоваться не только командная строка, но и команды SET с произвольными именами параметров и их значений, кроме COMSPEC. Сегментный адрес строки окружения ОС размещает в PSP по адресу 2Ch. Если дочерняя программа должна работать с той же средой, то в первые 2 байта блока параметров надо передать 0.
Сегмент и смещение командной строки соответствуют параметрам вызова, размещаемых в PSP по смещению 81h. По смещении 80h при этом размещается длина этой строки с учетом CR (код 13 - 0Dh). Через поле командной строки можно передать параметры, как будто дочерний процесс был запущен с командной строки DOS. При организации дочернего процесса будет создан новый PSP для него, в который функция EXEC поместит параметры по смещению 80h и 81h. Командная строка имеет формат: длина в 1 байт, содержание, CR. Например, на языке Ассемблера:
CMD DB 5;`/F /D`,0Dh
Если параметров нет, то сегмент и смещение ссылаются на db 1h,0Dh.
После подготовки EPB нужно подготовить строку ASCIIZ с именем файла с дочерней программой и адрес строки разместить в DS:DX. Имя файла должно включать в явной форме расширение COM или EXE. Шаблоны групповых операций не допустимы. Если путь не будет указан, дочерняя программа будет искаться в текущем каталоге.
Пример EPB на Ассемблере:
Дата добавления: 2015-10-02; просмотров: 94 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Создание дочерних процессов | | | Взаимодействие процессов |