Projects / Yasm / Comments

Comments for Yasm

28 Mar 2003 23:39 brainless


YASM CVS repository is located here ( .

YASM still needs programmers to help out. Please contact Peter at " peter at tortall dot net " for if you want to help out !

01 Feb 2003 08:37 brainless

YASM actively seeks out developers !
The YASM project is actively looking for help from developers in its struggle to reach Milestone 2.

Anyone who is interested please email the YASM development team contact person, Mr. Peter Johnson at " peter at tortall dot net ", for more details.

Things that are still needed to reach the Milestone 2 include:

Many code cleanups and bugfixes, and the support for the COFF object format with debugging information.

Please help out the YASM project if you can.

Thank you !

Below you'll find the "goals" of YASM:

YASM's syntax parser is written in yacc. This simplifies the source code and increases performance: yacc-generated parsers are almost always faster than hand-written ones. Also, yacc (and its GNU implementation, bison) is an extremely well-tested and well-documented tool.

Its (architecture-specific) instruction parser is hand-written for simplicity and size, as well as to make it easy to add additional architectures while retaining the same front-end syntax. The blend of yacc for syntax and a hand-written parser for instructions strikes a great balance between the strengths and weaknesses of each approach.

Its lexer is written in re2c. A highly efficient scanner generator (almost always faster than lex/flex), it's also very embeddable due to its code generation methodology, allowing a number of re2c scanners to be used in various places in yasm without any worries about naming conflicts.

Ability to emulate other assemblers such as GAS, TASM, and MASM (eventually).

An optimizer module that allows for multiple levels and types of optimization. Everything from only minimal optimization (such as in NASM) to multi-pass jump optimization is provided.

Debugging information for more object formats: notably COFF and ELF in addition to OBJ.

AMD x86-64 support (enabled using "BITS 64")

64-bit (and larger) integer constants allowed (including math operations). Useful for easily expressing MMX constants using "DQ".

Completely modularized: it is designed for multiple preprocessors, parsers, optimizers, object formats, and debugging formats. Multiple instruction sets may be supported with some additional effort.

Internationalization support for error and warning messages.

Again, the person to contact is Mr. Peter Johnson at " peter at tortall dot net ".


Project Spotlight


An open, cross-platform journaling program.


Project Spotlight


A scientific plotting package.