--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/progs/loops.j Sat Jun 15 09:23:18 2013 -0400
@@ -0,0 +1,90 @@
+
+.class public loops.loops
+.super java/lang/Object
+
+.method public <init>()V
+ aload_0
+ invokenonvirtual java/lang/Object/<init>()V
+ return
+.end method
+
+.method public static write(I)V
+ .limit locals 5
+ .limit stack 5
+ iload 0
+ getstatic java/lang/System/out Ljava/io/PrintStream;
+ swap
+ invokevirtual java/io/PrintStream/println(I)V
+ return
+.end method
+
+
+.method public static main([Ljava/lang/String;)V
+ .limit locals 200
+ .limit stack 200
+
+ldc 1000
+istore 0
+iload 0
+istore 1
+iload 0
+istore 2
+iload 0
+istore 3
+
+Loop_begin_0:
+
+ldc 0
+iload 1
+if_icmpge Loop_end_1
+
+Loop_begin_2:
+
+ldc 0
+iload 2
+if_icmpge Loop_end_3
+
+Loop_begin_4:
+
+ldc 0
+iload 3
+if_icmpge Loop_end_5
+iload 3
+ldc 1
+isub
+istore 3
+goto Loop_begin_4
+
+Loop_end_5:
+
+iload 0
+istore 3
+iload 2
+ldc 1
+isub
+istore 2
+goto Loop_begin_2
+
+Loop_end_3:
+
+iload 0
+istore 2
+iload 1
+ldc 1
+isub
+istore 1
+goto Loop_begin_0
+
+Loop_end_1:
+
+iload 1
+invokestatic loops/loops/write(I)V
+iload 2
+invokestatic loops/loops/write(I)V
+iload 3
+invokestatic loops/loops/write(I)V
+
+
+ return
+
+.end method