Yasm

Software Screenshot:
Yasm
Software Details:
Version: 1.3.0
Upload Date: 17 Feb 15
Developer: Peter Johnson
Distribution Type: Freeware
Downloads: 25

Rating: nan/5 (Total Votes: 0)

Briefly described in only three words, Yasm is a modular assembler project, but it is actually a complete rewrite of the Netwide Assembler project, designed from the ground up to to support multiple instruction sets (x86 and amd64 at the moment), accept both GAS and NASM syntaxes, as well as to output binary, ELF64, ELF32, Mach-O 32/64-bit, COFF, RDOFF2 and Windows 32/64-bit object formats.

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

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.

What is new in this release:

  • 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);
  • have a free software assembler that supports Win32/Win64 structured exception handling (SEH) and ELF32/ELF64 thread local storage (TLS);
  • target the new AMD SSE5 or Intel AVX instruction sets;
  • keep track of Yasm's progress in terms of stability and feature set;
  • contribute to Yasm development from a new release.

What is new in version 0.7.2:

  • This release adds 64-bit Mach-O PIC support, --prefix and --suffix options for naming globals, and support for newly specified AVX/AES instructions not in the original spec.
  • It also generates a GOTPCREL relocation for "rel wrt ..gotpc" and optimizes non-strict push to byte size in all possible cases, along with several other fixes.

Similar Software

Sunifdef
Sunifdef

2 Jun 15

JarSplice
JarSplice

20 Feb 15

Tar2RubyScript
Tar2RubyScript

2 Jun 15

Other Software of Developer Peter Johnson

Comments to Yasm

Comments not found
Add Comment
Turn on images!