Omawiamy przykład kodu JVM, np.
.class public Hello .super java/lang/Object ; standard initializer .method public <init>()V aload_0 invokespecial java/lang/Object/<init>()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" invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V return .end method
Kompilujemy prostą klasę np.
public class Inc { public static void main(String[] args) { System.out.println(test1(41)); } static int test1(int i) { return i+1; } }
Następnie analizujemy kod przy pomocy javap -c
, po czym zapisujemy go w formacie asemblera Jasmin.
Rozszerzyć kalkulator z poprzednich laboratoriów o generowanie kodu Jasmin.