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.