argentinapb

aoc3

Sep 24th, 2019
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. .data
  2. vet1: .word 0,0,0,0,0
  3. vet2: .word 0,0,0,0,0
  4. str1: .asciiz "digite valor pro vet1: "
  5. str2: .asciiz "digite valor pro vet2: "
  6. str3: .asciiz "o valor maior da posição "
  7. str4: .asciiz " eh: "
  8. quebra: .asciiz "\n"
  9.  
  10. .text
  11. la $a1, vet1 #posiçao inicial do vet1
  12. la $a2, vet2 #posiçao inicial do vet2
  13. li $t0, 0 #inicia t0 com 0
  14. la $s1, vet1 #inicia s1 com 0
  15. li $t1, 0
  16. la $s2, vet2
  17. li $t3, 0
  18. Preencher1:
  19. beq $t0, 5, Preencher2 #ve se o contador é = 5
  20. addi $t0, $t0, 1 #incrementa o contador
  21. la $a0, str1
  22. li $v0, 4
  23. syscall
  24.  
  25. li $v0, 5
  26. syscall
  27. sw $v0, 0($s1) #salva v0 na posição s1
  28. addi $s1, $s1, 4 #muda a posição do vetor
  29. j Preencher1
  30. Preencher2:
  31. beq $t1, 5, Comparar #se t1 == 5 vai para função comparar
  32. addi $t1, $t1, 1 #incrementa t1
  33. la $a0, str2
  34. li $v0, 4
  35. syscall
  36.  
  37. li $v0, 5 #le um inteiro
  38. syscall
  39. sw $v0, 0($s1) #armazena na posiçao s1 o inteiro
  40. addi $s1, $s1, 4 #soma 4 em s1
  41. j Preencher2 #volta pro preencher2
  42. Comparar:
  43.  
  44. Loop2:
  45. jal ComparaVetor #entra na função
  46. beq $t3, 5, Exit #ve se t3 ==5
  47. la $a0, str3
  48. li $v0, 4
  49. syscall
  50.  
  51. move $a0, $t3 #printa t3
  52. li $v0, 1
  53. syscall
  54.  
  55. la $a0, str4
  56. li $v0, 4
  57. syscall
  58.  
  59. slti $t4, $t5, 1 #se for 1 é por que o vetor 2 eh maior
  60. bne $t4, $zero, Else #vai para else caso o vetor 2 seja maior
  61.  
  62. lw $a0, 0($a1) #printa o vetor 1 se ele for maior
  63. li $v0, 1
  64. syscall
  65.  
  66. la $a0, quebra
  67. li $v0, 4
  68. syscall
  69.  
  70. addi $a1, $a1, 4 #muda posiçao do vet1
  71. addi $a2, $a2, 4 #muda posiçao do vet2
  72. addi $t3, $t3, 1 #incrementa t3
  73. j Loop2 #volta para o loop2
  74.  
  75. Else:
  76. lw $a0, 0($a2) #printa a posiçao do vet2 comparada
  77. li $v0, 1
  78. syscall
  79.  
  80. la $a0, quebra
  81. li $v0, 4
  82. syscall
  83.  
  84. addi $a1, $a1, 4
  85. addi $a2, $a2, 4
  86. addi $t3, $t3, 1
  87. j Loop2
  88.  
  89. ComparaVetor:
  90. slt $t5, $a1, $a2 #ve se a1 é menor que a2
  91. jr $ra #volta para a linha da main salva em ra
  92.  
  93. Exit:
  94. li $v0, 10
  95. syscall
Add Comment
Please, Sign In to add comment