Advertisement
argentinapb

aoc1

Sep 24th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. .data
  2. str1: .asciiz "digite 0 para preencher vetor em posiçoes impares ou diferente para par: "
  3. vet1: .word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  4. str2: .asciiz " |"
  5.  
  6. .text
  7. la $a1, vet1
  8. la $s3, vet1
  9. la $s4, vet1
  10. addi $s3, $s3, 4
  11. li $t3, 0 #contador do loop
  12.  
  13. li $t1, 0 #posiçoes
  14. li $s2, 13
  15. li $s6, 0 #contador do print
  16. Loop:
  17. beq $t3, 3, Printar
  18.  
  19. li $s0, 0 #contador do par
  20. li $s1, 0 #contador impar
  21.  
  22. addi $t3, $t3, 1
  23. la $a0, str1
  24. li $v0 ,4
  25. syscall
  26.  
  27. li $v0, 5
  28. syscall
  29.  
  30. move $t0, $v0 #poe o valor lido em t0
  31. beq $t0, $zero, Impar #ve se t0 é diferente de 0
  32. Par:
  33. beq $s0, 3, Loop
  34. mul $t2, $t1, 4
  35. sw $t2, 0($s4) #poe a posição i * 4
  36. addi $s4, $s4, 8 #aumenta 2 posiçoes em s4
  37. addi $s0, $s0, 1 #incrementa s1
  38. addi $t1, $t1, 2 #aumenta 2 posiçao o t1 para mostrar em qual posiçao esta e fazer a mult
  39. j Par
  40. Impar:
  41. beq $s1, 3, Loop
  42. sw $s2, 0($s3) #poe 13 em vet 1
  43. addi $s3, $s3, 8
  44. addi $s1, $s1, 1
  45. j Impar
  46.  
  47. Printar:
  48. beq $s6, 21, Exit
  49. lw $a0, 0($a1)
  50. li $v0, 1
  51. syscall
  52. la $a0, str2
  53. li $v0, 4
  54. syscall
  55. addi $s6, $s6, 1
  56. addi $a1, $a1, 4
  57. j Printar
  58. Exit:
  59. li $v0, 10
  60. syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement