Created
December 13, 2017 21:15
-
-
Save MrPowerGamerBR/2d1a3dd75cbcff3464c3c6ceed76854e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# *iniciando variáveis por favor ignorar* | |
addi $s0, $zero, 2 | |
addi $s1, $zero, 5 | |
# *iniciando variáveis por favor ignorar* | |
# m (s0) = 2 | |
# n (s1) = 5 | |
# s2 = somatória | |
# | |
# Fazer a somatória entre os números m e n, ou seja, se for 2 e 5, o programa | |
# irá fazer 2 + 3 + 4 + 5 e guardar o resultado em s2 | |
# MIPS é pobre e tosco e não é possível fazer algo como "$s3 = $s0"... | |
# Ou seja, para nós podermos fazer isso, é necessário usar o ADD e somar $s0 com... 0 | |
# Porque, "$s3 = $s0 + 0" que, no final, será "$s3 = $s0" | |
add $s3, $s0, $zero | |
# O $s3 será a nossa "index", o que nós iremos ir "somando" a cada loop para verificar | |
# se devemos sair do loop... ou não! | |
# Nós iremos salvar o valor de $s2 em $s0, já que o número inicial da somatória será $s2 | |
# (no caso, 2) | |
add $s2, $s0, $zero | |
# Agora é a hora de fazer um loop! :clap: | |
LOOP: | |
# Isto seria equivalente a "if ($s1 == $s3) { * código no rótulo de FIM * }" | |
beq $s1, $s3, FIM | |
# Caso $s1 é diferente de $s3, as próximas linhas serão executadas... | |
# Primeiro iremos somar +1 na nossa "index" | |
# Pra que nós precisamos fazer isso? Simples! Porque nós verificamos ali em cima no "beq" | |
# se a nossa index é igual a s3, caso seja, nós saimos do loop | |
# | |
# Ou seja, na primeira vez que entrar no loop será algo como "se 2 é 5, vá para FIM", na | |
# segunda vez é "se 3 é 5, vá para FIM" e assim vai indo | |
addi $s3, $s3, 1 # Isto seria a mesma coisa que "$s3 = $s3 + 1" | |
# Depois iremos somar o valor de $s3 no valor de $s2 | |
add $s2, $s2, $s3 # Isto seria a mesma coisa que "$s2 = $s2 + $s3" | |
# E agora iremos ir para o rótulo "LOOP", ou seja, de volta para o "beq" | |
j LOOP | |
# ^ Como nós fizemos um jump, qualquer linha que nós colocarmos aqui em diante não será executada :O | |
# Mágica? Talvez | |
FIM: | |
# Acabou, é isso, bye bye | |
# Ou seja, se nós colocarmos qualquer outra linha de código aqui em diante, o programa só irá executar ela ao | |
# sair do loop, como não é necessário, acaba por aqui o programa, yay! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment