Advertisement
GuiBrust

Untitled

Oct 1st, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. .data
  2.  
  3. p1: .asciiz "\n1 - Mostrar todas as vagas \n2 - Mostrar vagas livres \n3 - Estacionar carro \n4 - Remover Carro \n5 - Resumo do estacionamento \n6 - Sair \n"
  4.  
  5. space: .asciiz "-"
  6.  
  7. vetor: .word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  8.  
  9. cheio1: .asciiz "Vaga Ocupada, escolha outra!!\n"
  10.  
  11. vazio1: .asciiz "Vaga não ocupada, escolha outra!! \n"
  12.  
  13. verificavagalivre: .asciiz "\nVagas livres "
  14. verificavagaocupada: .asciiz "\nVagas ocupada "
  15. vglivre: .asciiz " Vaga Livre\n"
  16. vgocupada: .asciiz " Vaga Ocupada\n"
  17.  
  18.  
  19. .text
  20.  
  21.  
  22.  
  23. main:
  24.  
  25.  
  26.  
  27. li $t1, 1
  28. li $t2, 2
  29. li $t3, 3
  30. li $t4, 4
  31. li $t5, 5
  32. li $t6, 6
  33.  
  34. li $v0, 4
  35. la $a0 , p1 #imprime menu
  36. syscall
  37.  
  38. li $v0 , 5 #LE RESULTADO DO MENU
  39. syscall
  40. move $t0, $v0
  41.  
  42. li $s6, 0
  43. li $s7, 0
  44.  
  45. beq $t0, $t1, mostrartdvagas
  46. beq $t0, $t2, mostrarlivres
  47. beq $t0, $t3, estcar
  48. beq $t0, $t4, remcar
  49. beq $t0, $t5, verifica
  50. j fim
  51.  
  52. mostrartdvagas:
  53. li $s0 , 19 #Limite do laço com 20 posições
  54. move $t0 , $zero #Inicializa laço com 0
  55. la $s1 , vetor
  56. li $t6, 0
  57. laco:
  58. bgt $t0, $s0 , main #Criterio de parada do laço
  59. lw $t1 , 0($s1)
  60. addi $s1, $s1, 4
  61. addi $t0, $t0, 1
  62. li $v0, 1 #impressão vaga
  63. move $a0 , $t0
  64. syscall
  65. subi $t0, $t0, 1
  66.  
  67. bne $t1, $t6, ocp
  68. j liv
  69. soma:
  70. addi $t0, $t0 , 1 #contador do laço
  71. j laco #volta para o laço
  72.  
  73. liv:
  74. li $v0, 4
  75. la $a0 ,vglivre #imprime menu
  76. syscall
  77. j soma
  78.  
  79. ocp:
  80. li $v0, 4
  81. la $a0 ,vgocupada #imprime menu
  82. syscall
  83. j soma
  84.  
  85. mostrarlivres:
  86.  
  87. li $s0 , 19 #Limite do laço com 20 posições
  88. move $t0 , $zero #Inicializa laço com 0
  89. la $s1 , vetor
  90.  
  91. laco1:
  92. bgt $t0, $s0 , main #Criterio de parada do laço
  93. lw $t1 , 0($s1)
  94. addi $s1, $s1, 4
  95.  
  96. beq $t1 , $zero , printcont
  97. #funcao imprime contador
  98.  
  99. addi $t0, $t0 , 1 #contador do laço
  100. j laco1
  101.  
  102. printcont:
  103. li $t6, 1
  104. addi $t0, $t0, 1
  105. li $v0, 1 #impressão vaga
  106. move $a0 , $t0
  107. syscall
  108. subi $t0, $t0, 1
  109.  
  110. bne $t1, $t6, ocp1
  111.  
  112. cont:
  113. addi $t0, $t0 , 1 #contador do laço
  114. j laco1 #volta para o laço
  115.  
  116. ocp1:
  117. li $v0, 4
  118. la $a0 ,vglivre #imprime status vaga
  119. syscall
  120. j cont
  121.  
  122. estcar:
  123. li $v0, 5
  124. syscall
  125. move $t9, $v0
  126.  
  127. la $s1 , vetor
  128. mul $s2, $t9, $t4
  129. sub $s2, $s2, $t4
  130. add $s1, $s1, $s2
  131.  
  132. lw $t7, 0($s1)
  133. beq $t7, $t1, cheio
  134. sw $t1 , 0($s1)
  135. j main
  136.  
  137.  
  138. remcar:
  139.  
  140.  
  141. li $t1, 0
  142. li $v0, 5
  143. syscall
  144. move $t9, $v0
  145.  
  146. la $s1 , vetor
  147. mul $s2, $t9, $t4
  148. sub $s1, $s1, $t4
  149. add $s1, $s1, $s2
  150.  
  151. lw $t7, 0($s1)
  152. beq $t7, $t1, vazio
  153. sw $t1, 0($s1)
  154. li $t1, 1
  155.  
  156. j main
  157.  
  158. verifica:
  159.  
  160. li $s0 , 19 #Limite do laço com 20 posições
  161. move $t0 , $zero #Inicializa laço com 0
  162. la $s1 , vetor
  163.  
  164. laco2:
  165. bgt $t0, $s0 , imprime1 #Criterio de parada do laço
  166.  
  167. lw $t2 , 0($s1)
  168. beq $t2, $t1, relocupado
  169. j rellivre
  170.  
  171. rellivre:
  172. addi $s7, $s7, 1
  173.  
  174. addi $s1, $s1, 4
  175.  
  176.  
  177. addi $t0, $t0 , 1 #contador do laço
  178. j laco2 #volta para o laço
  179.  
  180.  
  181. relocupado:
  182.  
  183. addi $s6, $s6, 1
  184.  
  185. addi $s1, $s1, 4
  186.  
  187. addi $t0, $t0 , 1 #contador do laço
  188. j laco2 #volta para o laço
  189.  
  190. imprime1:
  191.  
  192. li $v0, 4
  193. la $a0, verificavagalivre
  194. syscall
  195.  
  196. li $v0, 1
  197. move $a0, $s7
  198. syscall
  199.  
  200. li $v0, 4
  201. la $a0, verificavagaocupada
  202. syscall
  203.  
  204. li $v0, 1
  205. move $a0, $s6
  206. syscall
  207.  
  208. j main
  209.  
  210. cheio:
  211.  
  212. li $v0, 4
  213. la $a0, cheio1
  214. syscall
  215.  
  216. j main
  217.  
  218. vazio:
  219.  
  220. li $v0, 4
  221. la $a0, vazio1
  222. syscall
  223.  
  224. j main
  225.  
  226.  
  227. fim:
  228.  
  229. li $v0, 10
  230. syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement