Загрузка программ в оперативную память и их выполнение NASM 16b

Я отчаянно нуждаюсь в решении этой проблемы. Я пытаюсь разработать код сборки, позволяющий мне загружать и выполнять (по вводу пользователя) 2 другие программы сборки .EXE. У меня две проблемы:

  • Кажется, я не могу присвоить имя пути действительному регистру (или, возможно, неправильный синтаксис)

  • Мне нужно иметь возможность выполнять другую программу после первой ( может быть и так и так) началось его выполнение.

Вот что у меня есть на данный момент:

mov ax,cs ; moving code segment to data segment
mov ds,ax

mov ah,1h ; here I read from keyboard
int 21h
mov dl,al

cmp al,'1' ; if 1 jump to LOADRUN1 
JE LOADRUN1 

cmp al,'2' ; if 2 jump to LOADRUN2 
JE LOADRUN2

LOADRUN1:
    MOV AH,4BH
    MOV AL,00
    LEA DX,[PROGNAME1] ; Not sure if it works
    INT 21H


LOADRUN2:
    MOV AH,4BH
    MOV AL,00
    LEA DX,[PROGNAME2] ; Not sure if it works
    INT 21H

; Here I define the bytes containing the pathnames
PROGNAME1 db 'C:\Users\Usuario\NASM\Adding.exe',0 
PROGNAME2 db 'C:\Users\Usuario\NASM\Substracting.exe',0

Я просто не знаю, как запустить другую программу, введя данные в «родительскую» программу, после того как одна из них уже выполняется.

Заранее спасибо за помощь! Любую дополнительную информацию я буду более чем счастлив предоставить.

  • Не является наложением.
  • Я использую NASM 16 бит, Windows 7 32 бит.
9
задан noob 8 April 2012 в 11:11
поделиться