Advertisement
veto14

questao1.arqilista

Apr 14th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. primeiro o codigo em mips
  2.  
  3. lw $s1, $t0($s0) //carrega o valor encontrado no endereço do vetor ($s0) com o valor de i ($t0) no registrador $s1
  4. lw $s2, $t1($s0) //mesma coisa de cima só que com j e no registrador $s2
  5. bne $s1,$s2, END //compara os dois valores nos registradores, caso sejam diferentes, é mandado para a label end
  6. addi $t3,$t3,1 //incrementa um na variavel igual contida em $t3 (caso sejam iguais, caso sejam diferentes o prog pula pra END)
  7. END: add $t3,$t3,$zero (a label end se inicia, e o programa pula diretamente para ela se os valores de vet[i] e vet[j] forem diferentes
  8.  
  9. ------------------------
  10.  
  11. como o codigo acima teve cinco linhas, chamaremos as linhas de linha 1 a linha 5.
  12.  
  13. na linha 1 temos a instrução lw, que é de formato imediato, ou tipo I
  14.  
  15. opcode = 35
  16. rs = 16 //registrador $s0
  17. rt = 17 //registrador $s1
  18. constante/endereço = $t0
  19.  
  20. 35 16 8 $t0
  21.  
  22. linha 2 -> instrução sw, tipo I
  23.  
  24. opcode = 43
  25. rs = 16
  26. rt = 18//registrador $s2
  27. IMM = $t1
  28.  
  29. 43 16 18 $t1
  30.  
  31. linha 3 -> instrução bne, tipo I
  32.  
  33. opcode = 5
  34. rt = 17
  35. rs = 18
  36. IMM = END
  37.  
  38. 5 17 18 END
  39.  
  40. linha 4 -> instrução addi, tipo i
  41.  
  42. opcode = 8
  43. rs = 10
  44. rt = 10
  45. IMM = 1
  46.  
  47. 8 10 10 1
  48.  
  49. linha 5 - > instrução add, tipo R
  50.  
  51. opcode = 0
  52. rs = 0
  53. rt = 10
  54. rd = 10
  55. shamt = 0
  56. funct = 32
  57.  
  58. 0 0 10 10 0 32
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement