用MASM制作COM文件

 

举例说明吧

       首先编写一个显示命令行参数的程序

先从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文件。

你可能感兴趣的:(用MASM制作COM文件)