Hello, Java VM Assembler World!

Posted on 1月 6th, 2012 by cx20

Java VM Assembler

Java VM アセンブラは Java VM の中間コード(バイトコード)を生成するアセンブラである。
主要な Java VM アセンブラとしては、Jasmin 等がある。

ソースコード

.class public Hello
.super java/lang/Object
 
.method public ()V
   aload_0
   invokespecial java/lang/Object/()V
   return
.end method
 
.method public static main([Ljava/lang/String;)V
   .limit stack 2
   getstatic java/lang/System/out Ljava/io/PrintStream;
   ldc "Hello, Java VM World!"
   invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
   return
.end method

上記コードは以下の Java のソースに対応する。
クラスファイルを tinapoc と言った逆アセンブラや javap で逆アセンブル(javap -c Hello)することでアセンブリコードを得られる。

public class Hello {
    public static void main( String[] args ) {
        System.out.println( "Hello, Java VM World!" );
    }
}

コンパイル&実行方法(Jasmin)

$ java -jar jasmin.jar Hello.j
$ java Hello

実行結果

Hello, Java VM World!

Tags:

Categories: assembler, Jasmin, Java, Java VM

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WP-SpamFree by Pole Position Marketing