User visible features
User visible features include full-featured parsing and lexing of the NASM and GAS syntaxes, initial support for the TASM syntax, support for 64-bit integer constants, internationalization support using gettext, a simple 2-pass optimizer, and support for 64-bit (amd64) instruction set architectures, which can be enabled using the “-m amd64” option or by selecting an explicit 64-bit object format output.
It allows for 64-bit and higher integer constants, including math operations, support a wide range of object formats, including COFF, Binary, RDOFF2, ELF32, ELF64, Win32, Win64, as well as 64-bit and 32-bit Mach-O object file outputs. In addition, it supports the CodeView, DWARF2 and STABS debugging formats, runs on UNIX and Linux operating systems, as well as Microsoft Windows and DOS.
Internal features include a GAS and NASM syntax lexers that are written with the re2c tool, recursive-descent parser functionality for both the GAS and NASM syntaxes, architecture-specific instruction parsers, a tiny collection of portable and useful functions, such as strdup, mergesort and strcasecmp, as well as a standard set of assembler test input files.
Under the hood and availability
The project is available for download only as a source archive, which forces the user to manually configure and compile the program prior to installation. The best part of a source archive is that it can be installed on any GNU/Linux operating system, as opposed to pre-built binary packages that are designed for a certain type of distribution.
Reviewed by Marius Nestor, last updated on September 10th, 2014
In a hurry? Add it to your Download Basket!
- use a mature NASM-syntax x86 and AMD64 assembler that can target Win32, Win64, MacOS X, and Unix derivatives;
- use a GAS-syntax assembler other than GAS;
- try out the new TASM-like syntax or frontend;
- have assembly source-level debugging using either DWARF2 or CodeView? 8.0 (VS 2005);
Application descriptionYasm is an open source command-line software that provides an alternate NASM assembler utility, which supports multipl...