Laden von Programmen in den Arbeitsspeicher und Ausführen von Programmen auf dem NASM 16b

Ich bin verzweifelt nach einer Lösung dafür. Ich versuche, Assembly-Code zu entwickeln, mit dem ich (nach Eingabe des Benutzers) 2 andere Assembly-EXE-Programme laden und ausführen kann. Ich habe zwei Probleme:

Ich kann den Pfadnamen anscheinend keinem gültigen Register zuordnen (oder falsche Syntax)

Ich muss in der Lage sein, das andere Programm auszuführen, nachdem das erste (könnte eines von beiden sein) seine Ausführung gestartet hat.

Das habe ich bisher:

<code>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
</code>

Ich weiß nur nicht, wie ich ein anderes Programm durch Eingabe in das übergeordnete Programm starten soll, nachdem es bereits ausgeführt wurde.

Vielen Dank im Voraus für Ihre Hilfe! Für weitere Informationen stehe ich Ihnen gerne zur Verfügung.

Ist kein Overlay.Ich verwende NASM 16-Bit, Windows 7 32-Bit.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage