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).

Syntax

ML [options] filename [ [options] filename]

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

Parameters

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 in filename.
/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 symbol. 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 conventions for function calls and names. Same as OPTION LANGUAGE:PASCAL.
Not available in ml64.exe.
/Gd Specifies use of C-style conventions for function calls and names. Same as OPTION LANGUAGE:C.
Not available in ml64.exe.
/Gz Specifies use of __stdcall conventions for function calls and names. Same as OPTION LANGUAGE:STDCALL.
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 Displays a summary of ML command-line syntax and options.
/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.
/quiet Suppresses 'Assembling' message. Available in Visual Studio 17.6 and later.
/Sa Turns on listing of all available information.
/safeseh Marks the object file: either it contains no exception handlers, or it contains exception handlers that are all declared with .SAFESEH.
Not available in ml64.exe.
/Sf Adds the first-pass listing to the listing file.
/Sl width Sets the line width of source listing in characters per line to width. Range is 60-255 or 0. Default is 0. Same as PAGE width.
/Sn Turns off symbol table when a listing is produced.
/Sp length Sets the page length of source listing in lines per page to length. Range is 10-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 If warnings are generated, returns an error code.
/X Ignore INCLUDE environment path.
/Zd Generates line-number information in object file.
/Zf Makes all symbols public.
/ZH:MD5 Use MD5 for checksum in debug info.
/ZH:SHA_256 Use SHA256 for checksum in debug info (default in Visual Studio 2022 version 17.0 and later).
/Zi Generates CodeView information in object file.
/Zm Enables M510 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, 4, 8, or 16.
/Zs Performs a syntax check only.
/? Displays a summary of ML command-line syntax and options.

filename
The name of the file.

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

Remarks

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