Запуск программы exe из другой программы (Запуск без оболочки)

Тема в разделе "WASM.BEGINNERS", создана пользователем Martin, 3 дек 2006.

  1. Martin

    Martin New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1
    Здравствуйте.
    Я написал программку реализующею следующие действия:
    1. Вывод сообщения
    2. Запуск другой программы P2.exe (она только выводит сообщение) через оболочку
    3. Вывод сообщения о возврате из потомка.

    Код (Text):
    1. .MODEL  small
    2. .486
    3. .stack 1024
    4.  DOSSEG
    5. .DATA
    6.     ;path db "D:\TASM\P2.exe",0
    7.     path db "P2.exe",0
    8.     command_line db "",0
    9.     epb dw 0 ; Блок параметров exec и место для указателя на env
    10.     cmd_off dw ?
    11.     cmd_seg dw ?
    12.     Msg1 db "P1 start",0Ah,0Dh,'$'
    13.     Msg2 db "P1 end",0Ah,0Dh,'$'
    14. .CODE
    15.     F1 dw ? ; фиктивные переменные
    16.     F2 dw ? ; фиктивные переменные
    17. .STARTUP
    18.       ; сообщение при старте
    19.     mov    dx,offset Msg1
    20.     mov    ah,09h
    21.     int    21h
    22.       ; изменяем размер выделенного блока памяти
    23.     pusha
    24.     mov    bx,640
    25.     mov    ah,4Ah
    26.     int    21h
    27.       ; адрес командной строки для блока EPB
    28.     mov     bx,OFFSET command_line
    29.     mov     cmd_off,bx
    30.     mov     cmd_seg,ds
    31.     push    ss
    32.     pop    ax
    33.     mov    cs:F1,sp
    34.     mov    cs:F2,ax
    35.     mov    ax,ds
    36.     mov    es,ax
    37.       ; ES:BX указывают на EPB
    38.     mov    bx,OFFSET epb
    39.       ; DS:DX указывают на путь к файлу запускаемой программы
    40.     mov    dx,OFFSET path
    41.       ; вызываем функцию 4Bh с параметром 0 (загрузить и выполнить)
    42.     mov    ax,4B00h
    43.     int    21h
    44.     mov    sp,cs:F1
    45.     mov    ax,cs:F2
    46.     mov    ss,ax
    47.     popa
    48.       ; сообщение при завершении
    49.     mov    dx,offset Msg2
    50.     mov    ah,09h
    51.     int    21h
    52. .EXIT    0
    53.  END
    Подскажите, пожалуйста, как мне переделать программу, чтобы запустить P2.exe БЕЗ ОБОЛОЧКИ.