Nu er IJVM ikke "rigtig" maskinkode eller Java maskinkode, men du kan jo bare bruge Javas compiler og disassembler:
robert-desktop:~/code/Test $ cat Test.java
public class Test {
public int compare(int a, int b) {
int i = -1;
if (a == b) i=i+1;
else if (b<a) i=i+2;
return i;
}
}
robert-desktop:~/code/Test $ javac Test.java
robert-desktop:~/code/Test $ javap -c Test
Compiled from "Test.java"
public class Test extends java.lang.Object{
public Test();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public int compare(int, int);
Code:
0: iconst_m1
1: istore_3
2: iload_1
3: iload_2
4: if_icmpne 14
7: iload_3
8: iconst_1
9: iadd
10: istore_3
11: goto 23
14: iload_2
15: iload_1
16: if_icmpge 23
19: iload_3
20: iconst_2
21: iadd
22: istore_3
23: iload_3
24: ireturn
}
robert-desktop:~/code/Test $
Jeg kan ikke lige huske IJVM instruktions sættet, men du kan nok bruge JVM versionen ovenfor som grundlag.