The Microsoft Macro Assembler (MASM) provides several advantages over inline assembly. MASM contains a macro language that has features such as looping, arithmetic, and text string processing. MASM also gives you greater control over the hardware because it supports the instruction sets of the 386, 486, and Pentium processors. This is the project webpage for the Netwide Assembler (NASM), an asssembler for the x86 CPU architecture portable to nearly every modern platform, and with code generation for many platforms old and new. As of version 2.07, NASM is now under the Simplified (2-clause) BSD license. The details of the license are available in the.
- Microsoft Macro Assembler
- Best Assembler Windows
- Assembler For Windows 10
- Turbo Assembler For Windows 10
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 .MODELTINY directive. Not available in ml64.exe. |
/Blfilename | 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. |
/Dsymbol⟦=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. |
/Fhexnum | 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. |
/Fefilename | Names the executable file. |
/Fl⟦filename⟧ | Generates an assembled code listing. See /Sf. |
/Fm⟦filename⟧ | Creates a linker map file. |
/Fofilename | 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. |
/Fr⟦filename⟧ | Generates a source browser .sbr file. |
/FR⟦filename⟧ | 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. |
/Hnumber | Restricts external names to number significant characters. The default is 31 characters. Not available in ml64.exe. |
/help | Calls QuickHelp for help on ML. |
/Ipathname | 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. |
/Slwidth | 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. |
/Splength | 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. |
/Sstext | Specifies text for source listing. Same as SUBTITLE text. |
/Sttext | Specifies title for source listing. Same as TITLE text. |
/Sx | Turns on false conditionals in listing. |
/Tafilename | Assembles source file whose name doesn't end with the .asm extension. |
/w | Same as /W0/WX. |
/Wlevel | 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. |
/Zp⟦alignment⟧ | 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. |
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:
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
Microsoft Macro Assembler
ML Error Messages
Microsoft Macro Assembler Reference
Best Assembler Windows
-->This article describes how to install an assembly .dll file in the Microsoft .NET Framework global assembly cache, and create an assembly that has a strong name by using Visual Studio.
Original product version: .NET Framework, Visual Studio
Original KB number: 910355
Summary
To install an assembly .dll file in the .NET Framework global assembly cache, you can use the .NET Framework SDK Global Assembly Cache tool. You can also use the Global Assembly Cache tool to verify that the assembly is installed in the global assembly cache. To accomplish this task, you may have Administrator rights to the computer where the shared assembly is installed. What's more, you must install the .NET Framework SDK.
For a Visual C# .NET version of this article, see How to install an assembly into the Global Assembly Cache in Visual C#.
Global assembly cache
The .NET Framework global assembly cache is a code cache. The global assembly cache is automatically installed on each computer that has the .NET Framework common language runtime installed. Any application that is installed on the computer can access the global assembly cache. The global assembly cache stores assemblies that are designated to be shared by several applications on the computer. Component assemblies are typically stored in the C:WINNTAssembly
folder.
Note
Only install an assembly in the global assembly cache when you need to share the assembly. Unless sharing an assembly is explicitly required, we recommend you keep assembly dependencies private and that you locate the assembly in the application directory. Additionally, you don't have to install an assembly in the global assembly cache to make the assembly available to Microsoft Component Object Model (COM) interop or to un-managed code.
An assembly
An assembly is a fundamental part of programming with the .NET Framework. An assembly is a reusable, self-describing building block of a .NET Framework common language runtime application.
An assembly contains one or more code components that the common language runtime executes. All types and all resources in the same assembly form an individual version of the unit. The assembly manifest describes the version dependencies that you specify for any dependent assemblies. By using an assembly, you can specify version rules between different software components, and you can have those rules enforced at run time. An assembly supports side-by-side execution. WHich enables multiple versions to run at the same time.
Strong-name signing
An assembly must have a strong name to be installed in the global assembly cache. A strong name is a globally unique identity that can't be spoofed by someone else. By using a strong name, you prevent components that have the same name from conflicting with each other or from being used incorrectly by a calling application. Assembly signing associates a strong name together with an assembly. Assembly signing is also named strong-name signing. A strong name consists of the following information:
- The simple text name of the assembly
- The version number of the assembly
- The culture information about the assembly, if this information is provided
- A public key and private key pair
This information is stored in a key file. The key file is either a Personal Information Exchange (.pfx) file or a certificate from the current user's Microsoft Windows certificate store.
You can sign an assembly by using the options on the Signing tab of the Project Designer in Visual Studio. In Visual Studio, the key file must be stored in the project folder on the local computer. Visual Studio supports only the following file formats:
- Personal Information Exchange (.pfx) files
- Strong name key (.snk) files
Requirements
You might meet the following requirements before you install an assembly in the global assembly cache:
- You must have Administrator rights to the computer where the shared assembly is installed.
- You must install the .NET Framework SDK.
This article assumes that you're familiar with the following topics:
- General familiarity with shared assemblies in .NET.
- General familiarity with the use of tools at a command prompt.
Install an assembly in the global assembly cache
This method is based on how to create an assembly by using Visual Studio. To create an assembly that can be shared by multiple applications, the shared assembly must have a strong name. Additionally, the shared assembly must be deployed in the global assembly cache.
To create a small Visual C# assembly that has a strong name and to install the compiled .dll file in the global assembly cache, follow these steps:
Create a new Visual C# Class Library project that is named GACDemo. To do it, follow these steps:
- Start Visual Studio.
- On the File menu, select New Project.
- In the Templates list, select Class Library.
- In the Name box, type GACDemo, and then select OK.
- To save the project, press CTRL+SHIFT+S.
- In the Location box, type
C:DemoProjects
. - Clear the Create directory for solution check box, and then select Save.
Generate a strong name, and then associate the strong name key file together with the assembly. To do it, follow these steps:
On the Project menu, select GACDemo Properties.
On the Signing tab, select the Sign the assembly check box.
Under Choose a strong name key file, select <New>.
In the Create Strong Name Key dialog box, select the Protect my key file with a password check box.
In the Key file name box, type GACDemo.
In the Enter password box, type the password that you want to use.
In the Confirm password box, type the same password, and then select OK.
Note
We recommend you always use a password when you create a key file. A new key file that is protected by a password is always created in the .pfx file format.
To compile the project, press CTRL+SHIFT+B.
Note
No additional code is required to install a .dll file in the global assembly cache.
Install the .dll file that you created in step 2 in the global assembly cache by using the Global Assembly Cache tool. To do it, follow these steps:
- Select Start, select Run, type cmd, and then select OK.
- Change the current working directory to the directory where the .NET Framework SDK is installed.
- At a command prompt, type the
gacutil -I 'C:DemoProjectsGACDemobinReleaseGACDemo.dll'
command, and then press ENTER.
Verify the assembly is installed in the global assembly cache
You can use the Global Assembly Cache tool to verify the assembly is installed in the global assembly cache. To do it, follow these steps:
Assembler For Windows 10
Select Start, select Run, type cmd, and then select OK.
Change the current working directory to the directory where the .NET Framework SDK is installed.
To display the installation information about the GACDemo assembly, use the Global Assembly Cache tool. To do it, type the
gacutil -l GACDemo
command at a command prompt, and then press ENTER.Note
The installation information about the GACDemo assembly is displayed.