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:
Compilando um Kernel customizado a partir do código-fonte do Kernel do Debian 12
Gentoo binário ao lado da sua distro atual
Documentação para a função de carregamento saudável da bateria do notebook Acer Aspire 5 no Linux
Instalando Google Chrome no Linux Mint 22
O Que Fazer Após Instalar Linux Mint 22
Instalando o Dolphin e deixando-o "pretinho" acompanhando o tema escuro do Gnome-Shell
Meu computador não aceita o Linux de nenhuma maneira (10)
Meu computador está travando (14)
Qual é a melhor distro Linux pra essa configuração? (1)
Error no such device : 3C8E-127A. error: disco 'hd1,gpt... não e... (4)