Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Запуск программы exe из другой программы


Автор: Martin_8 3.12.2006, 16:18
Здравствуйте.
Я написал программку реализующею следующие действия:
1.    Вывод сообщения
2.    Запуск другой программы P2.exe (она только выводит сообщение) через оболочку
3.    Вывод сообщения о возврате из потомка.

Код

.MODEL  small
.486
.stack 1024
 DOSSEG
.DATA
    ;path db "D:\TASM\P2.exe",0
    path db "P2.exe",0
    command_line db "",0
    epb dw 0 ; Блок параметров exec и место для указателя на env
    cmd_off dw ?
    cmd_seg dw ?
    Msg1 db "P1 start",0Ah,0Dh,'$'
    Msg2 db "P1 end",0Ah,0Dh,'$'

.CODE
    F1 dw ? ; фиктивные переменные
    F2 dw ? ; фиктивные переменные

.STARTUP

      ; сообщение при старте
    mov    dx,offset Msg1
    mov    ah,09h
    int    21h

      ; изменяем размер выделенного блока памяти
    pusha
    mov    bx,640
    mov    ah,4Ah 
    int    21h

      ; адрес командной строки для блока EPB 
    mov     bx,OFFSET command_line
    mov     cmd_off,bx
    mov     cmd_seg,ds

    push    ss
    pop    ax
    mov    cs:F1,sp
    mov    cs:F2,ax
    mov    ax,ds
    mov    es,ax

      ; ES:BX указывают на EPB
    mov    bx,OFFSET epb
      ; DS:DX указывают на путь к файлу запускаемой программы
    mov    dx,OFFSET path
      ; вызываем функцию 4Bh с параметром 0 (загрузить и выполнить)
    mov    ax,4B00h
    int    21h

    mov    sp,cs:F1
    mov    ax,cs:F2
    mov    ss,ax
    popa

      ; сообщение при завершении
    mov    dx,offset Msg2
    mov    ah,09h
    int    21h

.EXIT    0
 END


Подскажите, пожалуйста, как мне переделать программу, чтобы запустить P2.exe БЕЗ ОБОЛОЧКИ.


Автор: dumb 3.12.2006, 22:42
если б ты еще рассказал, что это за страшная такая "ОБОЛОЧКА" у тебя...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)