-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Javasm is the IntelliJ IDEA plugin for JAL (Java Assembly Language) — a modern, debuggable, and developer-friendly JVM assembly language.
JAL was designed as a full replacement for the abandoned Jasmin project, offering a cleaner syntax, better error handling, and built-in support for modern Java bytecode. Javasm brings JAL into IntelliJ IDEA with full editor and debugger integration.
JAL (Java Assembly Language) is a textual assembler for the JVM:
- Designed to be readable and writable by humans
- Maps directly to JVM bytecode
- Supports modern JVM versions
- Clear instruction syntax and stack behavior
- Easily embeddable into toolchains
It was created to replace Jasmin, which has not been maintained for years and lacks support for modern development workflows.
Javasm is the IntelliJ IDEA plugin that adds:
- Syntax highlighting and code completion for
.jalfiles - Integration with Run Configurations
- Full debugger support (breakpoints, step over/in, variable inspection)
- Navigation between source and bytecode
- In-editor documentation for all instructions
If you're using JAL, Javasm is the toolchain frontend you want.
Why switch from Jasmin?
| Feature | Jasmin | JAL + Javasm |
|---|---|---|
| Actively maintained | ❌ | ✅ |
| IDE integration | ❌ | ✅ IntelliJ support |
| Modern JVM support | ❌ | ✅ (supports new bytecodes) |
| Debugging support | ❌ | ✅ Breakpoints, stepping, stack |
| Clear syntax & docs | ✅ | |
| Extensible | ❌ | ✅ (planned macro system) |
- JAL Instructions Reference
- JAL Syntax Guide
- Debugging with Javasm
- Migrating from Jasmin
- Mnemonics on Instructions
- Install the Javasm plugin from IntelliJ Marketplace.
- Write
.jalfiles using the JAL syntax. - Run and debug them like standard Java programs — but at the bytecode level.
Contributions to both JAL and the Javasm plugin are welcome. Check out the GitHub repo for issue tracking, discussions, and PR guidelines.
JAL brings JVM assembly into the 2020s. Javasm makes it usable. Together, they offer a complete ecosystem for learning, experimenting, and building directly on the Java Virtual Machine — with full IDE support and modern tooling.
Welcome to the next generation of JVM assembly.