ML and ML64 command-line reference

Assembles and links one or more assembly-language source files. The command-line options are case-sensitive.

For more information on ml64.exe, see MASM for x64 (ml64.exe).


ML [options] filename [ [options] filename]

ML64 [options] filename [ [options] filename] ... [/link link_options]


The options listed in the following table.

Option Action
/AT Enables tiny-memory-model support. Enables error messages for code constructs that violate the requirements for .com format files. This option isn't equivalent to the .MODEL TINY directive.

Not available in ml64.exe.
/Bl filename Selects an alternate linker.
/c Assembles only. Does no linking.
/coff Generates common object file format (COFF) type of object module. Required for Win32 assembly language development.

Not available in ml64.exe.
/Cp Preserves case of all user identifiers.
/Cu Maps all identifiers to upper case (default).

Not available in ml64.exe.
/Cx Preserves case in public and extern symbols.
/D symbol⟦=value Defines a text macro with the given name. If value is missing, it's blank. Multiple tokens separated by spaces must be enclosed in quotation marks.
/EP Generates a preprocessed source listing (sent to STDOUT). See /Sf.
/ERRORREPORT [ NONE | PROMPT | QUEUE | SEND ] Deprecated. Error reporting is controlled by Windows Error Reporting (WER) settings.
/F hexnum Sets stack size to hexnum bytes (the same as /link /STACK:number). The value must be expressed in hexadecimal notation. There must be a space between /F and hexnum.
/Fe filename Names the executable file.
/Flfilename Generates an assembled code listing. See /Sf.
/Fmfilename Creates a linker map file.
/Fo filename Names an object file. For more information, see Remarks.
/FPi Generates emulator fix-ups for floating-point arithmetic (mixed language only).

Not available in ml64.exe.
/Frfilename Generates a source browser .sbr file.
/FRfilename Generates an extended form of a source browser .sbr file.
/Gc Specifies use of FORTRAN- or Pascal-style function calling and naming conventions. Same as OPTION LANGUAGE:PASCAL.

Not available in ml64.exe.
/Gd Specifies use of C-style function calling and naming conventions. Same as OPTION LANGUAGE:C.

Not available in ml64.exe.
/GZ Specifies use of __stdcall function calling and naming conventions. Same as OPTION LANGUAGE:STCALL.

Not available in ml64.exe.
/H number Restricts external names to number significant characters. The default is 31 characters.

Not available in ml64.exe.
/help Calls QuickHelp for help on ML.
/I pathname Sets path for include file. A maximum of 10 /I options is allowed.
/nologo Suppresses messages for successful assembly.
/omf Generates object module file format (OMF) type of object module. /omf implies /c; ML.exe doesn't support linking OMF objects.

Not available in ml64.exe.
/Sa Turns on listing of all available information.
/safeseh Marks the object as either containing no exception handlers or containing exception handlers that are all declared with .SAFESEH.

Not available in ml64.exe.
/Sf Adds first-pass listing to listing file.
/Sl width Sets the line width of source listing in characters per line. Range is 60 to 255 or 0. Default is 0. Same as PAGE width.
/Sn Turns off symbol table when producing a listing.
/Sp length Sets the page length of source listing in lines per page. Range is 10 to 255 or 0. Default is 0. Same as PAGE length.
/Ss text Specifies text for source listing. Same as SUBTITLE text.
/St text Specifies title for source listing. Same as TITLE text.
/Sx Turns on false conditionals in listing.
/Ta filename Assembles source file whose name doesn't end with the .asm extension.
/w Same as /W0/WX.
/W level Sets the warning level, where level = 0, 1, 2, or 3.
/WX Returns an error code if warnings are generated.
/X Ignore INCLUDE environment path.
/Zd Generates line-number information in object file.
/Zf Makes all symbols public.
/Zi Generates CodeView information in object file.
/Zm EnablesM510 option for maximum compatibility with MASM 5.1.

Not available in ml64.exe.
/Zpalignment Packs structures on the specified byte boundary. The alignment can be 1, 2, or 4.
/Zs Performs a syntax check only.
/? Displays a summary of ML command-line syntax.

The name of the file.

The link options. For more information, see Linker options.


Some command-line options to ML and ML64 are placement-sensitive. For example, because ML and ML64 can accept several /c options, any corresponding /Fo options must be specified before /c. The following command-line example illustrates an object file specification for each assembly file specification:

ml.exe /Fo a1.obj /c a.asm /Fo b1.obj /c b.asm

Environment Variables

Variable Description
INCLUDE Specifies search path for include files.
ML Specifies default command-line options.
TMP Specifies path for temporary files.

See also

ML Error Messages
Microsoft Macro Assembler Reference