Advertisement
argentinapb

aoc 5

Sep 19th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. .data
  2. str1: .asciiz "1 - Somar\n2 - Multiplicar\n3 - Subtrair\n4 Elevar X por Y"
  3. str2: .asciiz "digite x:"
  4. str3: .asciiz "digite y:"
  5. str4: .asciiz "o resultado é: "
  6.  
  7. .text
  8. la $a0, str1
  9. li $v0, 4
  10. syscall
  11.  
  12. li $v0,5 #pega o inteiro pra ver qual a equação
  13. syscall
  14.  
  15. move $t0, $v0
  16. #ve qual a equação o usuario deseja fazer
  17. beq $t0, 1, Somar
  18. beq $t0, 2, Mult
  19. beq $t0, 3, Subt
  20. beq $t0, 4, Elevar
  21.  
  22. Somar:
  23. la $a0, str2
  24. li $v0, 4
  25. syscall
  26.  
  27. li $v0,5 #le x
  28. syscall
  29.  
  30. move $t1, $v0 #coloca x que estava em v0 em t1
  31.  
  32. la $a0, str3
  33. li $v0, 4
  34. syscall
  35.  
  36. li $v0,5 #le y
  37. syscall
  38.  
  39. move $t2, $v0 #coloca y que estava em v0 em t2
  40.  
  41. add $t1, $t1, $t2 #faz a adiçao de t1 + t2
  42.  
  43. move $a0, $t1 #move o resultado para a0
  44.  
  45. li $v0, 1 #imprime o resultado
  46. syscall
  47.  
  48. li $v0, 10
  49. syscall
  50.  
  51. Mult:
  52. la $a0, str2
  53. li $v0, 4
  54. syscall
  55.  
  56. li $v0,5 #le x
  57. syscall
  58.  
  59. move $t1, $v0 #coloca x que estava em v0 em t1
  60.  
  61. la $a0, str3
  62. li $v0, 4
  63. syscall
  64.  
  65. li $v0,5 #le y
  66. syscall
  67.  
  68. move $t2, $v0 #coloca y que estava em v0 em t2
  69.  
  70. mul $t1, $t1, $t2 #faz a multiplicaçao de t1 * t2
  71.  
  72. la $a0, str4
  73. li $v0, 4
  74. syscall
  75.  
  76. move $a0, $t1 #move o resultado para a0
  77.  
  78. li $v0, 1 #imprime o resultado
  79. syscall
  80.  
  81. li $v0, 10
  82. syscall
  83.  
  84. Subt:
  85. la $a0, str2
  86. li $v0, 4
  87. syscall
  88.  
  89. li $v0,5 #le x
  90. syscall
  91.  
  92. move $t1, $v0 #coloca x que estava em v0 em t1
  93.  
  94. la $a0, str3
  95. li $v0, 4
  96. syscall
  97.  
  98. li $v0,5 #le y
  99. syscall
  100.  
  101. move $t2, $v0 #coloca y que estava em v0 em t2
  102.  
  103. sub $t1, $t1, $t2 #faz a subtraçao de t1 - t2
  104.  
  105. la $a0, str4
  106. li $v0, 4
  107. syscall
  108.  
  109. move $a0, $t1 #move o resultado para a0
  110.  
  111. li $v0, 1 #imprime o resultado
  112. syscall
  113.  
  114. li $v0, 10
  115. syscall
  116.  
  117. Elevar:
  118. la $a0, str2
  119. li $v0, 4
  120. syscall
  121.  
  122. li $v0,5 #le x
  123. syscall
  124.  
  125. move $t1, $v0 #coloca x que estava em v0 em t1
  126.  
  127. la $a0, str3
  128. li $v0, 4
  129. syscall
  130.  
  131. li $v0,5 #le y
  132. syscall
  133.  
  134. move $t2, $v0 #coloca y que estava em v0 em t2
  135.  
  136. sw $t3, $t1 #copia o valor de t1 para t3
  137. Loop:
  138. beq $t2, 1, Exit #verifica se t2==1 se for vai para exit
  139. mul $t3, $t3, $t1 #multiplica t3 por t1
  140. subi $t2, $t2, 1 #decrementa o t2
  141. j Loop
  142. Exit:
  143. la $a0, str4
  144. li $v0, 4
  145. syscall
  146.  
  147. move $a0, $t2 #coloca o valor de t2 em a0
  148.  
  149. li $v0, 1 #printa a elevação
  150. syscall
  151.  
  152. li $v0, 10
  153. syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement