我想开发的程序集允许我加载和执行(通过输入用户)2其他程序集.EXE程序。我有两个问题:大会加载和执行问题
-I似乎不能够将路径分配给一个有效的寄存器(或者不正确的语法)
-I需要能够后执行其他程序第一个(可能是)开始执行。
这是我到目前为止有:
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
popf
cmp al,'2' ; if 1 jump to LOADRUN2
JE LOADRUN2
popf
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位。
您是否在模拟的MS DOS环境中执行该程序?或者只是试图在Windows Shell/CLI中运行它? – ShinTakezou 2012-04-07 17:36:21
@ShinTakezou我有一个.ASM文件中的代码,用NASM.EXE编译它来创建.EXE文件,然后执行它。所以它基本上是一个应用程序。 – 2012-04-07 17:38:18
你试过'LEA DX,[PROGNAME1]'吗? – harold 2012-04-07 17:53:24