Enviado em 07/05/2016 - 09:31h
Olá pessoal tudo bem? Tenho que implementar o bubblesort para o Mips32, escrevemos o código e ele começa a ordenação, porém como resultado final só o valor do numero mais alto e o valor onde está o vetor está sendo mostrado na memória, alguém poderia dar uma força. Segue o código:
.data
_A: .word 0x40, 0x30, 0x20, 0x10, 0x39
_n: .word 5
.text
.globl main
#####################################################
main: la $s0, _A #$s0 tem o endereco de 'A'
lw $s7, _n #$s7 tem o valor de 'n'
move $s1, $zero #$s1 representa 'i'
move $s2, $zero #$s2 representa 'j'
addi $s1, $s7, -1 #i = n-1
for1: slt $t3, $zero, $s1 #i > 0?
beq $t3, $zero, fimfor1 #nao? sai do laco
addi $s2, $zero, 1 #j = 1
for2: slt $t3, $s1, $s2 #j <= i? (teste se i < j)
bne $t3, $zero, fimfor2 #nao? sai do laco (se i < j, entao !(j <= i))
sll $s4, $s2, 2
add $s4, $s4, $s0 #A[j]
lw $t5, -4($s4) #temp1 = A[j-1]
lw $t6, 0($s4) #temp2 = A[j]
#parte 1: chamada do metodo max
#passagem de parametros para o metodo max
addi $sp, $sp, -8
sw $t5, 4($sp)
sw $t6, 0($sp)
jal max
#$s5 representa Maximo e deve receber o valor de retorno do metodo (move $s5, algo)
lw $s5, 0($sp)
addi $sp, $sp, 4
#parte 2: chamada do metodo min
#passagem de parametros para o metodo min
addi $sp, $sp, -8
sw $t5, 4($sp)
sw $t6, 0($sp)
jal min
#$s6 representa Minimo e deve receber o valor de retorno do metodo (move $s6, algo)
sw $s6, -4($s4) #A[j-1] = minimo
sw $s5, 0($s4) #A[j] = maximo
addi $s2, $s2, 1 #j++
j for2
fimfor2:addi $s1, $s1, -1 #i--
j for1
fimfor1:j fimdetudo
#####################################################
max: #parte 3 implementacao do metodo max
lw $t1, 0($sp)
lw $t2, 4($sp)
addi $sp, $sp, 8
slt $t0, $t1, $t2
bne $t0 ,$zero, t2maior
sw $t1,0($sp)
j fim_max
t2maior:
sw $t2,0($sp)
fim_max:
jr $ra
#####################################################
min: #parte 4 implementacao do metodo min
lw $t1, 0($sp)
lw $t2, 4($sp)
addi $sp, $sp, 8
slt $t0, $t1, $t2
beq $t0, $zero, t2menor
sw $t1, 0($sp)
j fim_max
t2menor:
sw $t2,0($sp)
fim_min:
jr $ra
#####################################################
fimdetudo:
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta