アセンブラのソースコードを書く
では、実際に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!!");
}
}
なんとなく、関連性が見えてきませんか? ごく初歩的なソースコードですが、書き方さえわかってくれば、意外とアセンブラで書くことはできそうですね。