Skip to content

Instantly share code, notes, and snippets.

@marcoscastro
Last active August 29, 2015 13:56
Show Gist options
  • Save marcoscastro/8893421 to your computer and use it in GitHub Desktop.
Save marcoscastro/8893421 to your computer and use it in GitHub Desktop.
Código que mostra os números de 1 a 100 em Jasmin (assembler para JVM)
.class public serie1a100
.super java/lang/Object
; imprime os numeros de 1 a 100
.method public static main([Ljava/lang/String;)V
.limit stack 10
.limit locals 2
getstatic java/lang/System/out Ljava/io/PrintStream;
ldc "Numeros de 1 a 100"
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
bipush 1 ; empilha o numero 1
bipush 100 ; empilha o numero 100
istore 0 ; armazena o valor 100 na variavel local 0
istore 1 ; armazena o valor 1 na variavel local 1
; empilho novamente os valores 1 e 100
iload 1 ; empilha o valor 1
iload 0 ; empilha o valor 100
Lteste:
; if_icmplt retira os dois elementos do topo da pilha e compara eles
; se o valor2 for menor ou igual ao valor1, entao vai para Llaco
if_icmple Llaco
goto Lend
Llaco:
getstatic java/lang/System/out Ljava/io/PrintStream;
iload 1
invokevirtual java/io/PrintStream/println(I)V
iinc 1 1 ; incrementa a variável local 1 em 1
iload 1 ; empilha o valor da variável local 1 (valor incrementado
iload 0 ; empilha o valor da variável local 0 (valor 100)
goto Lteste ; vai para Lteste
Lend:
return
.end method
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment