Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. .data
  2. v: .space 400
  3. str: .asciiz "Informe um numero de 1 a 100\n"
  4. .text
  5. # ---------------------------
  6. # Registradores utilizados
  7. # ---------------------------
  8. # $a0 - String - Endereço de str
  9. # $a1 - int - Incremento de controle do while - inicializado com 0
  10. # $t0 - int - Word informada pelo usuário
  11. # $t1 - int - Valor da posição do vetor
  12. # $t2 - int - Valor posição atual do vetor 0
  13. # $t3 - int - Valor anterior a posição atual do vetor -4
  14. # $v0 - int - Código Syscall
  15. # $v1 - int - Endereço do vetor v
  16.  
  17. la $v1, v
  18.  
  19. la $a0, str
  20. addi $v0, $zero, 4 # printf
  21. syscall
  22.  
  23. addi $v0, $zero, 5 # scanf
  24. syscall
  25.  
  26. add $t0, $zero, $v0
  27.  
  28. while: beq $a1, $t0, end_while
  29. # if_zero:
  30.  
  31. bne $a1, 0, if_um
  32. addi $t1, $zero, 1
  33. sw $t1, 0($v1) # atribui 1 a primeira posição do vetor
  34. j endif
  35.  
  36. if_um:
  37.  
  38. bne $a1, 1, else
  39. addi $t1, $zero, 1
  40. addi $v1, $v1, 4 # segunda posição do vetor
  41. sw $t1, 0($v1) # atribui 1 a segunda posição do vetor
  42. j endif
  43.  
  44. else:
  45.  
  46. #addi $t2, $v1, 0
  47. addi $t3, $v1, -4 # endereço da posição anterior
  48.  
  49. lw $t2, 0($v1) # valor da posição atual
  50. lw $t3, 0($t3) # valor da posição anterior
  51.  
  52. add $t2, $t2, $t3 # formação fibonacci atual + anterior = proximo
  53.  
  54. addi $v1, $v1, 4 # proxima posição do vetor
  55. sw $t2, 0($v1) # atribui o próximo valor da sequencia
  56.  
  57. endif:
  58.  
  59. addi $a1, $a1, 1 # incremento ($a1++)
  60. j while
  61.  
  62. end_while:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement