Jas is java bytecode assembler. Java bytecode can be generated either through a script which drives the assembler package, or directly accessing the assembler package from java. The assembler package is very simple, it attempts neither validation nor optimization of bytecode.
Jasmin is a Java Assembler Interface. It takes ASCII descriptions for Java classes, written in a simple assembler-like syntax and using the Java Virtual Machine instruction set. It converts them into binary Java class files suitable for loading into a Java interpreter. Jasmin was written as the companion to the book “Java Virtual Machine”, soon to be published by O’Reilly, written by Troy Downing and Jonathan Meyer.
Jamaica, the JVM Macro Assembler, is an assembly language for JVM bytecode programming. It uses Java syntax to define a JVM class except for the method body that takes bytecode instructions, including Jamaica‘s built-in macros. In Jamaica, bytecode instructions use mnemonics and symbolic names for all variables, parameters, data fields, constants and labels. Jamaica is a simplified JVM assembly language. It does not support inner classes. Variables are all method-wide and are strongly-typed. Jamaica is a language facade for a Java class creation API, JavaClassCreator. This API closely mimics the Jamaica language, allows users to define a Java class with the same flow, and supports all the Jamaica instruction set and macros.
This compiles the good old 8-bit 6502 assembler code and emulates its execution.