Advertisement
Guest User

Untitled

a guest
Sep 27th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.11 KB | None | 0 0
  1. .data
  2.  
  3. array: .space 80
  4. arrayuser: .space 80
  5. message: .asciiz "Diga a sequência de cores"
  6. errou: .asciiz "Fim de Jogo, Você Errou"
  7. ganhou: .asciiz "Parabéns!!! VOCÊ GANHOU"
  8.  
  9. .text
  10.  
  11. # Escolher cores
  12.  
  13. init:
  14.  
  15. li $t5,0
  16. li $t4,4
  17. li $t6,4
  18.  
  19. # Escolher cores
  20. choosecolor:
  21.  
  22. # sorteio
  23. li $a0, 0
  24. li $a1, 4
  25. li $v0, 42
  26. syscall
  27. #/ sorteio
  28.  
  29. beq $t4,$a0,choosecolor # Não repetir a cor
  30. la $t4, ($a0) # guarda ultima cor
  31.  
  32. sw $a0, array($t5)
  33.  
  34. addi $t5,$t5,4 #contador
  35. bne $t5,80,choosecolor
  36. # / Escolher cores
  37.  
  38.  
  39. # Loop para cada cor
  40. iniciarrodada:
  41.  
  42. li $t7,0 #iniciarcontador
  43.  
  44. looprodada:
  45.  
  46. beq $t7, $t6, fimdarodada #limitedarodada
  47.  
  48. lw $t8, array($t7) #atribui posição do array
  49.  
  50. beq $t8,0,redcolor
  51. beq $t8,1,bluecolor
  52. beq $t8,2,greencolor
  53. beq $t8,3,yellowcolor
  54.  
  55. redcolor:
  56. li $t0,0xFF0000
  57. j changecolor
  58.  
  59. bluecolor:
  60. li $t0,0x0000FF
  61. j changecolor
  62.  
  63. greencolor:
  64. li $t0,0x00FF00
  65. j changecolor
  66.  
  67. yellowcolor:
  68. li $t0,0xFFFF00
  69. j changecolor
  70.  
  71. # / Escolher cores
  72.  
  73. # Mudar Cor
  74. changecolor:
  75.  
  76. beq $t0,0xFF0000,somcorvermelho
  77. beq $t0,0x0000FF,somcorazul
  78. beq $t0,0x00FF00,somcorverde
  79. beq $t0,0xFFFF00,somcoramarelo
  80.  
  81. fimsom:
  82. li $s0,64
  83. li $s1,16
  84. li $t1,0x10040000 # Ponto zero
  85. sll $s0,$s0,2
  86. sll $s1,$s1,11
  87. addu $s1,$s1,$t1 # ultima linha
  88. addu $s0,$t1,$s0 # ultima coluna
  89. li $t4,0x800 # pulo da linha
  90.  
  91. rectangleYloop:
  92. move $t3,$t1 # coluna inicial
  93.  
  94. rectangleXloop:
  95. sw $t0,($t3)
  96. addiu $t3,$t3,4
  97. bne $t3,$s0,rectangleXloop # continua no loop se não estiver na ultima coluna
  98.  
  99. addu $t1,$t1,$t4 # aumenta uma linha
  100. addu $s0,$s0,$t4 # novo ultimo retangulo
  101. bne $t1,$s1,rectangleYloop # continuar no loop se não estiver na ultima linha
  102.  
  103. li $t3,0xFFFFFF
  104. beq $t3,$t0,leiturarodada
  105.  
  106. # / Mudar Cor
  107.  
  108. # sleep
  109. li $a0, 400
  110. li $v0, 32
  111. syscall
  112.  
  113. add $t7,$t7,4
  114. j looprodada
  115. # / sleep
  116. fimdarodada:
  117. li $t0,0xFFFFFF
  118. li $t8,0
  119. j changecolor
  120.  
  121. leiturarodada:
  122. beq $t8,$t7, outrarodada
  123.  
  124. la $a0,message
  125. li $v0,51
  126. syscall
  127.  
  128. lw $t2, array($t8)
  129. bne $t2,$a0,fimerro
  130. bne $a1,$0,fimerro
  131.  
  132. beq $a0,0,somcorvermelho
  133. beq $a0,1,somcorazul
  134. beq $a0,2,somcorverde
  135. beq $a0,3,somcoramarelo
  136.  
  137. fimsomuser:
  138. addi $t8,$t8,4
  139. j leiturarodada
  140.  
  141. outrarodada:
  142. # Comparar Rodada
  143. beq $t6,80,fimganhou
  144. add $t6,$t6,4
  145. li $a0,500
  146. li $v0, 32
  147. syscall
  148. j iniciarrodada
  149. # / Comparar Rodada
  150.  
  151. fimganhou:
  152. j fimganhousom
  153. fimganhousom1:
  154. la $a0,ganhou
  155. li $v0,55
  156. syscall
  157. j fim
  158.  
  159. fimerro:
  160. j fimperdeu
  161.  
  162. fimerro1:
  163. la $a0,errou
  164. li $v0,55
  165. syscall
  166. j fim
  167.  
  168. somcorazul:
  169. addi $v0, $zero, 33 #MIDI output sincronizado
  170. addi $a0, $zero, 72 #nota a ser tocada C72, D62, G67, F65
  171. addi $a1, $zero, 200 #duração
  172. addi $a2, $zero, 64 #instrumento
  173. addi $a3, $zero, 127 #volume
  174. syscall
  175. beq $t7,$t6,fimsomuser
  176. j fimsom
  177.  
  178. somcorverde:
  179. addi $v0, $zero, 33 #MIDI output sincronizado
  180. addi $a0, $zero, 62 #nota a ser tocada C72, D62, G67, F65
  181. addi $a1, $zero, 200 #duração
  182. addi $a2, $zero, 64 #instrumento
  183. addi $a3, $zero, 127 #volume
  184. syscall
  185. beq $t7,$t6,fimsomuser
  186. j fimsom
  187.  
  188. somcorvermelho:
  189. addi $v0, $zero, 33 #MIDI output sincronizado
  190. addi $a0, $zero, 67 #nota a ser tocada C72, D62, G67, F65
  191. addi $a1, $zero, 200 #duração
  192. addi $a2, $zero, 64 #instrumento
  193. addi $a3, $zero, 127 #volume
  194. syscall
  195. beq $t7,$t6,fimsomuser
  196. j fimsom
  197.  
  198. somcoramarelo:
  199. addi $v0, $zero, 33 #MIDI output sincronizado
  200. addi $a0, $zero, 90 #nota a ser tocada C72, D62, G67, F71
  201. addi $a1, $zero, 200 #duração
  202. addi $a2, $zero, 64 #instrumento
  203. addi $a3, $zero, 127 #volume
  204. syscall
  205. beq $t7,$t6,fimsomuser
  206. j fimsom
  207.  
  208. fimganhousom:
  209.  
  210. addi $v0, $zero, 33 #MIDI output
  211. addi $a0, $zero, 72 #nota a ser tocada C
  212. addi $a1, $zero, 100 #duração
  213. addi $a2, $zero, 64 #instrumento
  214. addi $a3, $zero, 127 #volumes
  215. syscall
  216.  
  217. addi $v0, $zero, 33 #MIDI output
  218. addi $a0, $zero, 72 #nota a ser tocada C
  219. addi $a1, $zero, 100 #duração
  220. addi $a2, $zero, 64 #instrumento
  221. addi $a3, $zero, 127 #volume
  222. syscall
  223.  
  224. addi $v0, $zero, 33 #MIDI output
  225. addi $a0, $zero, 62 #nota a ser tocada D
  226. addi $a1, $zero, 100 #duração
  227. addi $a2, $zero, 64 #instrumento
  228. addi $a3, $zero, 127 #volume
  229. syscall
  230.  
  231. addi $v0, $zero, 33 #MIDI output
  232. addi $a0, $zero, 72 #nota a ser tocada C
  233. addi $a1, $zero, 100 #duração
  234. addi $a2, $zero, 64 #instrumento
  235. addi $a3, $zero, 127 #volume
  236. syscall
  237.  
  238. addi $v0, $zero, 33 #MIDI output
  239. addi $a0, $zero, 65 #nota a ser tocada F
  240. addi $a1, $zero, 100 #duração
  241. addi $a2, $zero, 64 #instrumento
  242. addi $a3, $zero, 127 #volume
  243. syscall
  244.  
  245. addi $v0, $zero, 33 #MIDI output
  246. addi $a0, $zero, 64 #nota a ser tocada E
  247. addi $a1, $zero, 100 #duração
  248. addi $a2, $zero, 64 #instrumento
  249. addi $a3, $zero, 127 #volume
  250. syscall
  251.  
  252. li $v0, 32
  253. li $a0, 300
  254. syscall
  255.  
  256. addi $v0, $zero, 33 #MIDI output
  257. addi $a0, $zero, 72 #nota a ser tocada
  258. addi $a1, $zero, 100 #duração
  259. addi $a2, $zero, 64 #instrumento
  260. addi $a3, $zero, 127 #volume
  261. syscall
  262.  
  263. addi $v0, $zero, 33 #MIDI output
  264. addi $a0, $zero, 72 #nota a ser tocada
  265. addi $a1, $zero, 100 #duração
  266. addi $a2, $zero, 64 #instrumento
  267. addi $a3, $zero, 127 #volume
  268. syscall
  269.  
  270. addi $v0, $zero, 33 #MIDI output
  271. addi $a0, $zero, 62 #nota a ser tocada
  272. addi $a1, $zero, 100 #duração
  273. addi $a2, $zero, 64 #instrumento
  274. addi $a3, $zero, 127 #volume
  275. syscall
  276.  
  277. addi $v0, $zero, 33 #MIDI output
  278. addi $a0, $zero, 72 #nota a ser tocada
  279. addi $a1, $zero, 100 #duração
  280. addi $a2, $zero, 64 #instrumento
  281. addi $a3, $zero, 127 #volume
  282. syscall
  283.  
  284. addi $v0, $zero, 33 #MIDI output
  285. addi $a0, $zero, 67 #nota a ser tocada
  286. addi $a1, $zero, 100 #duração
  287. addi $a2, $zero, 64 #instrumento
  288. addi $a3, $zero, 127 #volume
  289. syscall
  290.  
  291. addi $v0, $zero, 33 #MIDI output
  292. addi $a0, $zero, 65 #nota a ser tocadaa
  293. addi $a1, $zero, 100 #duração
  294. addi $a2, $zero, 64 #instrumento
  295. addi $a3, $zero, 127 #volume
  296. syscall
  297.  
  298. addi $v0, $zero, 33 #MIDI output
  299. addi $a0, $zero, 65 #nota a ser tocada C72, D62, G67, F71
  300. addi $a1, $zero, 100 #duração
  301. addi $a2, $zero, 64 #instrumento
  302. addi $a3, $zero, 127 #volume
  303. syscall
  304.  
  305. li $v0, 32
  306. li $a0, 300
  307. syscall
  308.  
  309. addi $v0, $zero, 33 #MIDI output
  310. addi $a0, $zero, 61 #nota a ser tocada C72, D62, G67, F71
  311. addi $a1, $zero, 100 #duração
  312. addi $a2, $zero, 64 #instrumento
  313. addi $a3, $zero, 127 #volume
  314. syscall
  315.  
  316. addi $v0, $zero, 33 #MIDI output
  317. addi $a0, $zero, 61 #nota a ser tocada C72, D62, G67, F71
  318. addi $a1, $zero, 100 #duração
  319. addi $a2, $zero, 64 #instrumento
  320. addi $a3, $zero, 127 #volume
  321. syscall
  322.  
  323. addi $v0, $zero, 33 #MIDI output
  324. addi $a0, $zero, 69 #nota a ser tocada C72, D62, G67, F71
  325. addi $a1, $zero, 100 #duração
  326. addi $a2, $zero, 64 #instrumento
  327. addi $a3, $zero, 127 #volume
  328. syscall
  329.  
  330. addi $v0, $zero, 33 #MIDI output
  331. addi $a0, $zero, 65 #nota a ser tocada C72, D62, G67, F71
  332. addi $a1, $zero, 100 #duração
  333. addi $a2, $zero, 64 #instrumento
  334. addi $a3, $zero, 127 #volume
  335. syscall
  336.  
  337. addi $v0, $zero, 33 #MIDI output
  338. addi $a0, $zero, 64 #nota a ser tocada C72, D62, G67, F71
  339. addi $a1, $zero, 100 #duração
  340. addi $a2, $zero, 64 #instrumento
  341. addi $a3, $zero, 127 #volume
  342. syscall
  343.  
  344. addi $v0, $zero, 33 #MIDI output
  345. addi $a0, $zero, 62 #nota a ser tocada C72, D62, G67, F71
  346. addi $a1, $zero, 100 #duração
  347. addi $a2, $zero, 64 #instrumento
  348. addi $a3, $zero, 127 #volume
  349. syscall
  350.  
  351. addi $v0, $zero, 33 #MIDI output
  352. addi $a0, $zero, 62 #nota a ser tocada C72, D62, G67, F71
  353. addi $a1, $zero, 100 #duração
  354. addi $a2, $zero, 64 #instrumento
  355. addi $a3, $zero, 127 #volume
  356. syscall
  357.  
  358. li $v0, 32
  359. li $a0, 300
  360. syscall
  361.  
  362. addi $v0, $zero, 33 #MIDI output
  363. addi $a0, $zero, 69 #nota a ser tocada C72, D62, G67, F71
  364. addi $a1, $zero, 100 #duração
  365. addi $a2, $zero, 64 #instrumento
  366. addi $a3, $zero, 127 #volume
  367. syscall
  368.  
  369. addi $v0, $zero, 33 #MIDI output
  370. addi $a0, $zero, 69 #nota a ser tocada C72, D62, G67, F71
  371. addi $a1, $zero, 100 #duração
  372. addi $a2, $zero, 64 #instrumento
  373. addi $a3, $zero, 127 #volume
  374. syscall
  375.  
  376. addi $v0, $zero, 33 #MIDI output
  377. addi $a0, $zero, 69 #nota a ser tocada C72, D62, G67, F71
  378. addi $a1, $zero, 100 #duração
  379. addi $a2, $zero, 64 #instrumento
  380. addi $a3, $zero, 127 #volume
  381. syscall
  382.  
  383. addi $v0, $zero, 33 #MIDI output
  384. addi $a0, $zero, 65 #nota a ser tocada C72, D62, G67, F71
  385. addi $a1, $zero, 100 #duração
  386. addi $a2, $zero, 64 #instrumento
  387. addi $a3, $zero, 127 #volume
  388. syscall
  389.  
  390. addi $v0, $zero, 33 #MIDI output
  391. addi $a0, $zero, 67 #nota a ser tocada C72, D62, G67, F71
  392. addi $a1, $zero, 100 #duração
  393. addi $a2, $zero, 64 #instrumento
  394. addi $a3, $zero, 127 #volume
  395. syscall
  396.  
  397. addi $v0, $zero, 33 #MIDI output
  398. addi $a0, $zero, 65 #nota a ser tocada C72, D62, G67, F71
  399. addi $a1, $zero, 100 #duração
  400. addi $a2, $zero, 64 #instrumento
  401. addi $a3, $zero, 127 #volume
  402. syscall
  403.  
  404. addi $v0, $zero, 33 #MIDI output
  405. addi $a0, $zero, 65 #nota a ser tocada C72, D62, G67, F71
  406. addi $a1, $zero, 100 #duração
  407. addi $a2, $zero, 64 #instrumento
  408. addi $a3, $zero, 127 #volume
  409. syscall
  410. j fimganhousom1
  411.  
  412. fimperdeu:
  413. li $v0, 33 #syscall
  414. li $a0, 67 #pitch
  415. li $a1, 150 #duration
  416. li $a2, 5 #instrument
  417. li $a3, 100 #volume
  418. syscall
  419.  
  420. li $v0, 33 #syscall
  421. li $a0, 63 #pitch
  422. li $a1, 150 #duration
  423. li $a2, 5 #instrument
  424. li $a3, 100 #volume
  425. syscall
  426.  
  427. li $v0, 33 #sydscall
  428. li $a0, 61 #pitch
  429. li $a1, 600 #duration
  430. li $a2, 5 #instrument
  431. li $a3, 50 #volume
  432. syscall
  433. j fimerro1
  434. fim:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement