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:
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Linux Mint não conecta Wi-Fi sem fio (21)
Criar perfil temporário no Active Directory samba4-21 (2)
Meu Kubuntu não inicia, além do modo de recuperação (no meu dualboot (1)