アセンブラのソースコードを書く


では、実際にJasminを使ってみましょう。テキストエディタなどを使い、以下のように記述をしてみてください。これが、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 Jasmin!!"
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
return
.end method

実行している内容などは後で触れるとして、記述をしたら、jasmin.jarがある場所に「Hello.j」というファイル名で保存をしてください。

続いて、ソースコードをコンパイルします。コマンドプロンプトを起動し、cdコマンドでソースコードファイルがある場所(jasmin.jarがある場所)に移動します。そして、以下のように実行します。

java -jar jasmin.jar Hello.j

ソースコードに問題がなければ、コマンドプロンプトに「Generated: Hello.class」と出力され、その場所に「Hello.class」というファイルが作成されます。そう、Javaのクラスファイルです! ファイルが作成されていることを確認したら、実際にこれを実行してみましょう。

java Hello

コマンドプロンプトに「Hello Jasmin!!」と出力されましたか? これが、今作成したHello.classの実行結果なのです。
Hello.jをコンパイルし、javaコマンドで実行すると、作成されたHello.classが実行される。


Javaソースコードと比較してみる


今作成したHello.jは、一体どういうことをしていたのでしょうか。これをJavaのソースコードで記述してみると、以下のようになります。

public class Hello {

public static void main(String[] args){
System.out.println("Hello Jasmin!!");
}
}

なんとなく、関連性が見えてきませんか? ごく初歩的なソースコードですが、書き方さえわかってくれば、意外とアセンブラで書くことはできそうですね。