phoron_asm 1.0.2

A Jasmin-compatible Assembler for the JVM
Documentation
; print "Hello" 10 times

.class public PrintHello10Times
.super java/lang/Object

.method public <init>()V
  aload_0 ; load `this`
  invokespecial java/lang/Object/<init>()V ; super()
  return
.end method

.method public static main([Ljava/lang/String;)V
  .limit stack 3
  .limit locals 3 ; `this` is variable 0

  iconst_1
  istore_1  ; i = 1

  getstatic java/lang/System/out Ljava/io/PrintStream;
  astore_2 ; out object
loop:
  aload_2 ; load out
  iload_1 ; load i
  invokevirtual java/io/PrintStream/print(I)V ; print i
  aload_2 ; load out again
  ldc " - "
  invokevirtual java/io/PrintStream/print(Ljava/lang/String;)V
  aload_2 ; load out once more
  ldc "Hello" ; load the string to be printed
  invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V ; print the string
  iinc 1 1 ; i += 1
  iload_1 ; load i
  bipush 10 ; load limit
  if_icmple loop ; loop if i <= limit

  return
.end method