Advertisement
Di62028

Aula-7_LabAOC1_4

Oct 12th, 2020
939
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.             .data
  2. Vetor:      .word   14, 12, 13, 5, 9, 11, 3, 6
  3. Zero:       .word   0
  4. T1:         .word  
  5.             .text
  6.  
  7. main:
  8.     la  $t0, Vetor      # Copia o endereço base do array para $t0
  9.     addi $t0, $t0, 28    # Endereço da última posição                            
  10. loopfora:            
  11.     lw $t2, Zero
  12.     addi $t1, $t2, 0     # $t1 Determina quando a lista já está ordenada
  13.     sw $t1, T1
  14.    
  15.     la  $a0, Vetor      # Copia o endereço base do array para $a0
  16. loopdentro:                  
  17.     lw  $t1, 0($a0)         # $t1 recebe o elemento atual do array
  18.     lw  $t2, 4($a0)         # $t1 recebe o elemento seguinte do array
  19.     slt $s0, $t1, $t2       # $s0 = 1 se $t1 < $t2
  20.     bne $s0, $zero, continua   # se $s0 != 1, pula
  21.    
  22.     #### Troca de posição
  23.     sw  $t1, 4($a0)        
  24.     sw  $t2, 0($a0)        
  25.    
  26.     lw $t2, Zero
  27.     addi $t1, $t2, 1          # $t1 = 1
  28.     sw $t1, T1
  29.  
  30. continua:
  31.     lw $t1, T1
  32.     addi $a0, $a0, 4            # Vai para o proximo elemento do vetor
  33.     bne  $a0, $t0, loopdentro    # Se $a0 não for o final do vetor, volta para o loopdentro
  34.     bne  $t1, $zero, loopfora    # Se $t1 for diferente de 0, volta para o loopfora pois é necessário percorrer o vetor novamente
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement