The Javalin Set of Macros (JASM) provdies a universal specification that enables the assembly language programmer to easily develop object oriented applications. JASM is also portable. You can create OOP applications that run on all supported architectures and platforms.

JASM takes care of the complex and gory details of things like calling conventions, stack alignment, parameter passing, 32/64-bit portability issues, etc.. This enables you to concentrate more on the development of your OOP application. To get started read the Javalin Documentation where you'll find links and information you need on setting up your build environment and creating your first object.

JASM is currently an alpha-stage project. Our initial target architectures include x86 32-bit and x86-64 64-bit AMD and Intel CPUs. Initial target operating systems include Windows, Linux, OS X, and BSD. We currently support the Nasm assembler and are looking for help in creating macro sets for other assemblers.

Our goal is to have this project ready for beta-testing later this year with an official production release by the end of the year. All volunteers are welcome, all bug reports and patches appreciated, all flame wars extinguished.

If you are looking for ways to help - the following is our current list of things we're looking for:

  • Extending the JASM model to other assemblers (eg MASM, FASM, GOASM).
    Please read the JASM Specification document for more informaiton
  • Extending JASM to support other CPU architectures and Operating Systems.
    Become a maintainer for your platform or system of choice.
  • Documentation (translate to various languages)
    Help us spread the word


The Javalin Framework Classes (JFC) will provide the foundation necessary to build portable large-scale applications using the JASM Object-Oriented Programming model and support tools. This project will officially get started after the first JASM production release.

The JFC will contain the many objects you need to accomplish your tasks - file I/O, sockets, memory management, thread creation and pooling, exception handling, window management, etc. This is where a huge chunk of time and effort will be needed. If you wish to become a maintainer of a JFC portable objects package then pick the area you specialize in, download the current JASM release, program your package objects, then show us what you've got!



This future project will provide a portable Java-like language that can be translated to assembler and compiled to native binary form. The language specification will provide for mixed-mode programming allowing the assembly language developer to easily embed assembly code into the source code. It will use the object packages contained in the JFC.



The Javalin project's goal is to provide the foundation for portable object oriented assembly language programming. We have high goals for this technology and make it freely available via open source. Stay tuned for further details.


JASM v0.1.9b is now available for downloading. This version adds in support for multi-file projects using the new jpackage and jimport macros.


Nasm Netwide Assembler

NASMX Nasm cross-platform support


About Javalin

The Javalin project supports open source Object Oriented Programming using assembly language. Why assembly? Because we like it!


The source code is licensed under the the 2-clause BSD license agreement. This basically means that you are free to use the source code in your personal or commercial software products as you see fit provided you don't misrepresent our copyright.


First - read the documentation
Second - read the docs again before you post your questions on the forum.
Finally - Remember that you were told twice to read the docs.


Support the Javalin project financially. We provide a free service in the form of open-source code but we have bills to pay. Currently we are being supported by Piranha Designs, the initial creator of Javalin, and we share space on their web server. We need your help in continuing with our mission. All monies received go directly toward costs associated with keeping this project alive. Thank you for your support!