progs/LOOP.j
author Christian Urban <christian dot urban at kcl dot ac dot uk>
Tue, 15 Oct 2013 22:14:04 +0100
changeset 144 0cb61bed557d
parent 94 9ea667baf097
child 392 2d0a59127694
permissions -rw-r--r--
added


.class public LOOP.LOOP
.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 500000
istore 0
iload 0
istore 1
iload 0
istore 2
iload 0
istore 3

Loop_begin_38:

ldc 0
iload 1
if_icmpge Loop_end_39

Loop_begin_40:

ldc 0
iload 2
if_icmpge Loop_end_41

Loop_begin_42:

ldc 0
iload 3
if_icmpge Loop_end_43
iload 3
ldc 1
isub
istore 3
goto Loop_begin_42

Loop_end_43:

iload 0
istore 3
iload 2
ldc 1
isub
istore 2
goto Loop_begin_40

Loop_end_41:

iload 0
istore 2
iload 1
ldc 1
isub
istore 1
goto Loop_begin_38

Loop_end_39:

iload 1
invokestatic LOOP/LOOP/write(I)V
iload 2
invokestatic LOOP/LOOP/write(I)V
iload 3
invokestatic LOOP/LOOP/write(I)V


   return

.end method