progs/LOOP.j
author Christian Urban <christian dot urban at kcl dot ac dot uk>
Wed, 06 Apr 2016 12:18:54 +0100
changeset 400 e4afe3f46c29
parent 392 2d0a59127694
child 471 9476086849ad
permissions -rw-r--r--
updated


.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