Advertisement
Devastano

paraíba insano

Apr 2nd, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. .data
  2. vetA: .space 32
  3. vetB: .space 32
  4. vetC: .space 32
  5. input: .asciiz "Entre com o tamanho dos vetores (máx. = 8): "
  6. inputA: .asciiz "Entre com os valores do vetor A:\n"
  7. inputB: .asciiz "Entre com os valores do vetor B:\n"
  8. showC: .asciiz "Exibindo o vetor C:"
  9. err: .asciiz "Valor inválido"
  10. vetAtxt:.asciiz "Vetor A["
  11. vetBtxt:.asciiz "Vetor B["
  12. vetCtxt:.asciiz "\nVetor C["
  13. vetFim: .asciiz "]: "
  14. .text
  15. main:
  16. li $t0, 0 # Contador
  17. li $t1, 0 # Contador Auxiliar 1
  18. li $t2, 0 # Contador Auxiliar 2
  19. li $t3, 0 # Contador Auxiliar 3
  20. li $t4, 0 # Auxiliar
  21. li $t5, 0 # Auxiliar 2
  22.  
  23. li $s0, 8 # Máx elementos vetor/Máx valor
  24. li $s1, 1 # Mín elementos vetor/Mín valor
  25. la $s2, vetA # Endereço inicial vet A
  26. la $s3, vetB # Endereço inicial vet B
  27. la $s4, vetC # Endereço inicial vet C
  28. li $s5, 0 # Tam Vet
  29. tamVet:
  30. li $v0, 4
  31. la $a0, input
  32. syscall
  33. li $v0, 5
  34. syscall
  35. blt $v0, $s1, erroTamVet
  36. bgt $v0, $s0, erroTamVet
  37. add $s5, $0, $v0
  38. jal preencherVetA
  39. jal preencherVetB
  40. jal preencherVetC
  41. jal exibirVetC
  42. li $v0, 10
  43. syscall
  44. erroTamVet:
  45. li $v0, 4
  46. la $a0, err
  47. syscall
  48. j tamVet
  49.  
  50. preencherVetA:
  51. li $t0, 0
  52. add $t1, $0, $s2
  53. li $v0, 4
  54. la $a0, inputA
  55. syscall
  56. ini_loopVetA:
  57. beq $t0, $s5, fim_loopVetA
  58. li $v0, 4
  59. la $a0, vetAtxt
  60. syscall
  61. li $v0, 1
  62. add $a0, $0, $t0
  63. syscall
  64. li $v0, 4
  65. la $a0, vetFim
  66. syscall
  67. li $v0, 5
  68. syscall
  69. sw $v0, ($t1)
  70. add $t0, $t0, 1
  71. add $t1, $t1, 4
  72. j ini_loopVetA
  73. fim_loopVetA:
  74. jr $ra
  75. preencherVetB:
  76. li $t0, 0
  77. add $t1, $0, $s3
  78. li $v0, 4
  79. la $a0, inputB
  80. syscall
  81. ini_loopVetB:
  82. beq $t0, $s5, fim_loopVetB
  83. li $v0, 4
  84. la $a0, vetBtxt
  85. syscall
  86. li $v0, 1
  87. add $a0, $0, $t0
  88. syscall
  89. li $v0, 4
  90. la $a0, vetFim
  91. syscall
  92. li $v0, 5
  93. syscall
  94. sw $v0, ($t1)
  95. add $t0, $t0, 1
  96. add $t1, $t1, 4
  97. j ini_loopVetB
  98. fim_loopVetB:
  99. jr $ra
  100. preencherVetC:
  101. li $t0, 0
  102. add $t1, $0, $s2
  103. add $t2, $0, $s3
  104. add $t3, $0, $s4
  105. ini_loopVetC1:
  106. beq $t0, $s5, fim_loopVetC1
  107. lw $t5, 0($t1)
  108. add $t4, $0, $t5
  109. lw $t5, 0($t2)
  110. add $t4, $t4, $t5
  111. srl $t4, $t4, 1
  112. sw $t4, ($t3)
  113. add $t0, $t0, 1
  114. add $t1, $t1, 4
  115. add $t2, $t2, 4
  116. add $t3, $t3, 4
  117. j ini_loopVetC1
  118. fim_loopVetC1:
  119. jr $ra
  120. exibirVetC:
  121. li $t0, 0
  122. add $t1, $0, $s4
  123. li $v0, 4
  124. la $a0, showC
  125. syscall
  126. ini_loopVetC2:
  127. beq $t0, $s5, fim_loopVetC2
  128. li $v0, 4
  129. la $a0, vetCtxt
  130. syscall
  131. li $v0, 1
  132. add $a0, $0, $t0
  133. syscall
  134. li $v0, 4
  135. la $a0, vetFim
  136. syscall
  137. li $v0, 1
  138. lw $a0, 0($t1)
  139. syscall
  140. add $t0, $t0, 1
  141. add $t1, $t1, 4
  142. j ini_loopVetC2
  143. fim_loopVetC2:
  144. jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement