Index

JWasm

1. About JWasm

JWasm is a free MASM-compatible assembler with these features:
Further documents:
Readme.
Manual.

JWasm started as a fork of Open Watcom's Wasm in March 2008. Today, the part of Wasm source lines still contained in JWasm is approximately 20%.
 

2. Comparison of MASM-Style Assemblers

There are - at least - 4 assemblers available which (partially) understand MASM syntax:
JWasm compared with Advantages Disadvantages
MASM JWasm is free, no artificial license restrictions, can be used to create binaries for any OS. None.
JWasm's source is open. Hence JWasm is able to run - natively - on Windows, DOS, Linux, FreeBSD and OS/2.
More output formats supported (Bin, ELF).
optionally very small object modules can be created
better support for Open Watcom, for example the register-based calling convention
JWasm is faster than Masm.
TASM JWasm is available. TASM isn't legally available. And LZASM, which is sort of a TASM clone, understands IDEAL mode only. TASM additionally understands IDEAL mode. This was a big advantage compared to MASM v5.1, but compared to MASM v6 syntax there are no benefits anymore.
JWasm has full support for STRUCTs and UNIONs. TASM has severe limitations and bugs in this area.
JWasm supports virtually all more recent MASM features (PROTO, INVOKE, hll directives, ... ), most of which TASM won't understand.
JWasm supports instructions of recent Intel CPUs, TASM is behind.
POASM JWasm is open source None.
JWasm additionally supports output in OMF, ELF and binary format
JWasm supports 16-bit and segmented memory models. POASM understands FLAT only.
Unlike POASM, JWasm is compatible with MASM's implementation of macros.
POASM lacks the ability to create a listing file.
WASM JWasm's macro capabilities are ways better than Wasm's. Wasm's cmdline is more compatible with Open Watcom tools
JWasm fully supports Masm v6 syntax. In Wasm, most of the additions done in Masm v6 are missing.
Besides OMF, JWasm supports COFF, ELF and binary output formats.
JWasm supports 64-bit.

 

3. Source Samples

Note: all source samples are included in the precompiled binary packages.
 
DOS console"Hello world", COM format
DOS console"Hello world", DPMI16
DOS console"Hello world", DPMI32
DOS consoleSwitches to 64-bit and back
OS/2 16 console"Hello world"
OS/2 32 console"Hello world"
Win16 GUI "Hello world"
Win32 console"Hello world"
Win32 console"Hello world", uses WinInc
Win32 GUI "Hello world", uses Masm32
Win32 Dll
Win32 console"Hello world", PE binary without linker
Win32 consoledemonstrates how to use Unicode
Win64 GUI "Hello world", MessageBox
Win64 GUI "Hello world", Window
Win64 GUI "Hello world", with SEH support (Masm comp.)
Win64 GUI "Hello world", with SEH support (JWasm only)
Win64 console"Hello world", uses WinInc v2+ (JWasm only)
Win64 consoleexception handling, uses WinInc v2+ (JWasm only)
Win64 consoleuses MSVCRT and WinInc v2+ (JWasm only)
Win32/Win64console"bimodal" source (JWasm only)
Linux 32 console"Hello world", using syscalls
Linux 32 console"Hello world", using libc
Linux 32 consolencurses demonstration
Linux 32 GUI "Hello world", X application
Linux 64 console"Hello world", using syscalls
FreeBSD 32console"Hello world", ELF binary without linker
Mixed 16 hll calling assembly
Mixed 16 consoleassembly calling CRT
Mixed 32 hll calling assembly
Mixed 32 consoleassembly calling CRT
Mixed 32 consoleShows how to use FPU and CRT math functions
Mixed 32 consolehtml-to-text converter
Mixed 32 consolemasm-to-html converter
Mixed 32 GUI "Hello world", GTK+ application

 

4. User Feedback

JWasm uses SourceForge for user feedback:

5. Roadmap

Pipeline for next releases:

 

6. Downloads


Binary Windows

Binary Linux

Binary DOS

Source
JWasm v2.06e 07/22/2011 JWasm206bw.zip JWasm206bl.zip JWasm206bd.zip JWasm206s.zip change log
JWasm v2.07 preliminary 11/03/2011 JWasm207bw.zip JWasm207bl.zip change log

List of all JWasm versions available for download

Helper tools

WRC - OW resource compiler v1.9 05/2010 Win32 wrc.zip (binary)
WDW - OW debugger for NT/XP v1.8 02/2009 Win32 wdw.zip (binary)
PE - PE, COFF, AR dumper 01/13/2010 Win32, DOS pe.zip (binary & source)
Agner Fog's ObjConv v2.09 -
Object format converter + Disassembler
08/2009 DOS objconv.zip (binary)
MS OMF Linker v5.60 12/1994 Win32, DOS lnk563.exe
MS NMake v1.5 1994 Win32 nmake15.exe

See also: JWlink, WinInc, h2IncX,