Jasmin (Java assembler)
Screenshot | |
Developer(s) | Jonathan Meyer, Troy Downing and Daniel Reynaud |
---|---|
Stable release | 2.3 / October 10, 2006 |
Written in | Java |
Operating system | Cross-platform |
Size | 3.0 MiB |
Development status | Active |
Type | Assembler |
License | GNU General Public License |
Website | http://jasmin.sourceforge.net/ |
Jasmin is a free open source assembler to create class files from human readable assembler-like syntax using the Java Virtual Machine instruction sets. Jasmin is not a Java programming language compiler.
It could be seen as of writing a program by GAS assembly, instead of using a modern day C++ compiler, assembler, and linker.
Jasmin as an assembler takes ASCII descriptions of JVM Classes, written in a simple assembler-like syntax using the Java Virtual Machine instruction set. It converts them into binary JVM Class files, suitable for loading by a Java runtime system.
Example
The traditional HelloWorld starter in Jasmin:
.class public HelloWorld
.super java/lang/Object
.method public static main([Ljava/lang/String;)V
.limit stack 2
.limit locals 1
getstatic java/lang/System/out Ljava/io/PrintStream;
ldc "Hello World."
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
return
.end method
Invoking
Referenced from the Readme file
Then, to run Jasmin, use: java -jar jasmin.jar examples\HelloWorld.j [Windows] or java -jar jasmin.jar examples/HelloWorld.j [Unix/Mac OS X]
History
Jon Meyer and Troy Downing wrote Jasmin for their published book "Java Virtual Machine".
At the time of writing there were no known freely available assembler for the Java Virtual Machine instruction set. The only known compilers at the time required input in Java syntax source code, and explicitly using a JVM instruction was impossible. Therefore the authors set out to create an assembler suitable for manipulating and producing a class file to be executed on the Virtual machine.
Jasmin remains the oldest and the original Java assembler known for JVM.
Jasmin is currently located under a SourceForge Open Source project.
See also
- Oolong (programming language)
- Java bytecode
- the Java .class file format
- C to Java Virtual Machine compilers
- ARM9E, a CPU family with direct Java bytecode execution ability
- Common Intermediate Language (CIL), a similar bytecode specification that runs on the CLR of the .NET Framework.
- Compiler
- Disassembler
- List of assemblers
- Instruction set
- Microassembler
Books
- Jon Meyer: Java Virtual Machine. O'Reilly Associates, 1st Edition March 1997. ISBN 9781565921948
External links
- Jasmin Official page at Sourceforge
- Sun's Java Virtual Machine Specification
- Jasmin instructions
- Publisher of "Java Virtual Machine"
- personal website of Jon Meyer
- Programming Languages for the Java Virtual Machine
- Organization for Java Technology Specification
de:Jasmin (Programmiersprache) fr:Jasmin (langage) zh:Jasmin
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...