Free Assemblers, Linkers and Object Module Librarians

Assembly language tools: assemblers, cross-assemblers, linkers, librarians

Free Assemblers, Linkers and Object Module Librarians

Looking for an assembler or linker or librarian to write that high speed routine or application? This page lists assemblers, cross-assemblers, linkers, and librarians, where available, for a wide variety of operating systems and processors.

If you are looking for printed books on assembly language programming, you may want to search for assembly language books.

Related Pages

Free Assemblers, Linkers and Object Module Librarians

Microsoft Macro-Assembler (MASM) 8.0

Microsoft Macro-Assembler, or MASM, is now available for non-commercial use. You will need to have the Visual C++ Express Edition (as listed on the Free C/C++ Compilers page) to get it. It runs only on Windows 2000 SP 3, XP SP 2, and Windows Server 2003.

Note that there are other sources of MASM from Microsoft, should you find the above restrictions to be too limiting (for example, you are using a version of Windows that is not supported, or you want to develop for commercial use). If you use Visual C++ 6.0, you can get the Visual C++ 6.0 Processor Pack which includes MASM. An old version of MASM, 6.14, is also available from Microsoft's FTP server at along with a 16 bit linker. If you have downloaded Microsoft Windows 98 DDK in the past, back when they made it freely available, you should also have MASM in your installation. Finally, I'm told that you can also get MASM from the Microsoft Kernel-Mode Driver Framework which allows you to develop drivers for Windows 2000. Presumably, this MASM will permit commercial use. Please note that Microsoft tends to move their files around quite a bit, so if any of these URLs are broken, just search their site (and let me know).

Nasm - The Netwide Assembler

This is a free macro assembler that assembles Intel x86 assembly code. It generates a wide range of object file formats, including a.out, ELF, COFF, Mach-0, Microsoft OBJ, etc. It can also output plain binary files. It supports Pentium, P6, MMX, 3DNow!, SSE, and SSE2 opcodes. It runs on MSDOS, Win32, Linux and other platforms.

NBASM, NewBasic Assembler

This x86 assembler is near MASM 5.1x compatible, and is designed for newcomers to assembly language. It generates MSDOS executables.

High Level Assembly Language (HLA)

This tool converts your code, written in HLA into 80x86 assembly language, which you can then assemble with masm or fasm. It apparently uses high level constructs from the high level programming languages like C/C++, and Pascal/Delphi.

V810 Assembler

This is a V810 assembler written using Java and ANTLR, for Virtual Boy programming. You have to scroll down the page to find the assembler.

FASM: Flat Assembler

Flat Assembler is an Intel x86 macro assembler for MSDOS, Win32, Linux systems that accepts 16 bit and 32 bit 80x86/Pentium code, MMX, SSE, SSE2 instructions, and macros,. According to the website, it also has support for "code optimization", and can generate binary files, MZ and PE executables.


Devore Software has released their WarpLink linker for MSDOS (previously a commercial product) into the public domain (yes - public domain!) and the linker and documentation can be freely downloaded, used, sold, as you please. WarpLink can create MSDOS software with overlays as well. The program is no longer maintained.


This free linker has the ability to link a wide variety of object code modules, from the OMF format generated by Borland's compilers to the COFF format used by Microsoft's compilers. It is able to generate MSDOS COM and EXE files as well as Win32 PE EXE and DLL files. Resource files are also supported for the PE output files. It comes with source code, but appears to be no longer maintained.

CodeX Assembler

The CodeX assembler is an Intel assembler that supports not only the Pentium instruction sets (including Pentium 4) but also the AMD 3D Now! instruction set. It can generate flat model binaries (16 and 32 bits), DOS executables, Windows applications and Windows DLLs.


A DOS linker that can link OBJ files to produce EXE or COM files for the MSDOS system. It is supposed to be typically ten times faster than MS LINK and can handle USE32 segments that are larger than 64k. According to the web page, the author hopes to implement support for generating debugging information for CodeView and Turbo Debugger. Note: the utility was written by Qualitas Inc for its internal use (remember the 386MAX memory manager?).

Related Pages

Can't Find What You're Looking For?

Search the site using Google.

Newest Pages

Popular Pages

How to Link to This Page

It will appear on your page as:

Free Assemblers, Linkers and Object Module Librarians Free Webmaster Tutorials, Scripts and Articles Free How-To Guides Free Programmers, Webmasters and Security Resources
If you find this site useful, please link to us.