Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- primeiro o codigo em mips
- lw $s1, $t0($s0) //carrega o valor encontrado no endereço do vetor ($s0) com o valor de i ($t0) no registrador $s1
- lw $s2, $t1($s0) //mesma coisa de cima só que com j e no registrador $s2
- bne $s1,$s2, END //compara os dois valores nos registradores, caso sejam diferentes, é mandado para a label end
- addi $t3,$t3,1 //incrementa um na variavel igual contida em $t3 (caso sejam iguais, caso sejam diferentes o prog pula pra END)
- 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
- ------------------------
- como o codigo acima teve cinco linhas, chamaremos as linhas de linha 1 a linha 5.
- na linha 1 temos a instrução lw, que é de formato imediato, ou tipo I
- opcode = 35
- rs = 16 //registrador $s0
- rt = 17 //registrador $s1
- constante/endereço = $t0
- 35 16 8 $t0
- linha 2 -> instrução sw, tipo I
- opcode = 43
- rs = 16
- rt = 18//registrador $s2
- IMM = $t1
- 43 16 18 $t1
- linha 3 -> instrução bne, tipo I
- opcode = 5
- rt = 17
- rs = 18
- IMM = END
- 5 17 18 END
- linha 4 -> instrução addi, tipo i
- opcode = 8
- rs = 10
- rt = 10
- IMM = 1
- 8 10 10 1
- linha 5 - > instrução add, tipo R
- opcode = 0
- rs = 0
- rt = 10
- rd = 10
- shamt = 0
- funct = 32
- 0 0 10 10 0 32
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement