Java Reference
In-Depth Information
Stack=1,Locals=1,Args_size=1
0:aload_0
1:invokespecial#8;//Methodjava/lang/Object."<init>":()V
4:return
publicstaticintcomputeRec(int);
Code:
Stack=3,Locals=1,Args_size=1
0:iload_0
1:iconst_0
2:if_icmpgt10
5:iconst_1
6:ireturn
7:goto 19
10:iload_0
11:iload_0
12:iconst_1
13:isub
14:invokestatic#13;//MethodcomputeRec:(I)I
17:imul
18:ireturn
19:nop
publicstaticintcomputeIter(int);
Code:
Stack=2,Locals=2,Args_size=1
0:iconst_1
1:istore_1
2:iload_0
3:iconst_0
4:if_icmple17
7:iload_1
8:iload_0
9:iinc 0,-1
12:imul
13:istore_1
14:goto2
17:iload_1
18:ireturn
publicstaticvoidmain(java.lang.String[]);
Code:
Stack=1,Locals=2,Args_size=1
0:bipush 7
2:istore_1
3:iload_1
4:invokestatic #13;//MethodcomputeRec:(I)I
7:invokestatic #22;//Methodspim/SPIM.printInt:(I)V
10:bipush 10
12:invokestatic#26;//Methodspim/SPIM.printChar:(C)V
15:iload_1
16:invokestatic#28;//MethodcomputeIter:(I)I
19:invokestatic#22;//Methodspim/SPIM.printInt:(I)V
22:bipush 10
24:invokestatic#26;//Methodspim/SPIM.printChar:(C)V
27:return
}
All methods (other than the default constructor) are static; thus, the plethora of
invokestatic instructions. Otherwise, we see lots of loads, stores, a few arithmetic opera-
tions and both conditional and unconditional branches. Translating additional instructions
is left as a set of exercises.
 
Search WWH ::




Custom Search