Carregar programas para RAM e executá-los NASM 16b

Estou desesperado por uma solução para isso. Eu estou tentando desenvolver o código Assembly, permitindo-me carregar e executar (por entrada do usuário) 2 outros programas Assembly .EXE. Estou tendo dois problemas:

Eu não consigo atribuir o nome do caminho a um registrador válido (ou talvez a sintaxe incorreta)

Eu preciso ser capaz de executar o outro programa após o primeiro (poderia ser qualquer um) iniciado sua execução.

Isto é o que eu tenho até agora:

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

Eu só não sei como iniciar outro programa por entrada no programa 'pai', depois de um já estar sendo executado.

Agradeço antecipadamente por sua ajuda! Qualquer informação adicional eu vou ser mais do que feliz em fornecer.

Não é uma sobreposição.Estou usando o NASM 16 bits, o Windows 7 32 bits.

questionAnswers(2)

yourAnswerToTheQuestion