| |
首先编写一个显示命令行参数的程序
先从PSP中把命令行参数传到程序定义的缓冲区中,然后再显示。数据段和代码段相重。源程序COMP.ASM如下所示:
CODE SEGMENT
ORG 100H
ASSUME CS:CODE,DS:CODE
START: MOV SI,80H
MOV AL,[SI] ;取得命令行参数长度
INC SI
MOV CL,AL
XOR CH,CH ;CX含命令行参数字节数
PUSH CS ;该程序中数据和代码在一个代码
POP ES
LEA DI,BUF
PUSH CX
L: MOV AL,[SI] ;传命令行参数
MOV ES:[DI],AL
INC SI
INC DI
LOOP L
POP CX
PUSH ES
POP DS ;置数据段寄存器
LEA SI,BUF
MOV AH,2
JCXZ OVER
NEXT: MOV DL,[SI] ;显示命令行参数
INT 21H
INC SI
LOOP NEXT
OVER: MOV AX,4C00H ;程序结束
INT 21H
BUF DB 128 DUP(?) ;用于存放命令行参数的缓冲区
CODE ENDS
END START
方法一:
在建立源文件以后,对于MASM的6。1X版用汇编与连接命令ML/AT直接形成COM文件:
D:MASM>ML/AT COMP.ASM
方法二:
也可以在建立源文件以后,同样经过汇编、连接生成EXE文件,然后可以通过EXE2BIN程序来建立COM文件,在DOS窗口提示符下输入:
Exe2bin filename filename.com
注意,上行中第一个filename给出已形成的EXE文件的文件名,但不必给出文件扩展名。第二个filename为所要生成的COM文件的文件名,他必须带有文件扩展名COM,这样就生成了所要的COM文件。
注意此处的编译不是随便的EXE文件,一定要满足条件的EXE文件。