Microsoft KB Archive/24954

From BetaArchive Wiki
Knowledge Base

Producing .com Files With MASM

Article ID: 24954

Article Last Modified on 10/17/2003


  • Microsoft Macro Assembler 1.25
  • Microsoft Macro Assembler 1.27
  • Microsoft Macro Assembler 4.0
  • Microsoft Macro Assembler 4.0
  • Microsoft Macro Assembler 5.0
  • Microsoft Macro Assembler 5.1 Standard Edition

This article was previously published under Q24954


The Microsoft Macro Assembler packages prior to version 6.0 cannot produce .com files without an additional utility. One such utility is EXE2BIN, which is included with MS-DOS. It can convert .EXE files which have only one segment and an origin of 100h to .COM files. For more information on this utility, refer to your DOS manuals or contact the company which supplied your version of MS-DOS.


MASM version 6.0 is the first version of the assembler to support the tiny model. Use the following steps the produce a .com file in MASM 6.0.

  1. Use .model tiny. Declare logical segments using the simplified segment directives or full segment declarations.


    Do not use the .model directive and assemble with /AT. Use full segment declarations.
  2. Make sure that the first statement in the the code segment is ORG 100h.
  3. Build the .com file.

    Compiling and linking in one step: If .model tiny was used, no options are needed. The linker will automatically receive the /TINY switch, the file extension on the file produced will be .com, and the executable is indeed a .com file.


    Performing a separate link: Specify the /TINY option on the link command line. The linker will issue the following harmless warning

    L4045: name of output file is 'filename'

    where 'filename' will have a .com extension.

Additional query words: kbinf 1.25 1.27 3.0x 4.00 5.00 5.10

Keywords: KB24954