Skip to content

filipecard/MetodoBolha-Risc16

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 

Repository files navigation

Passo a passo do metodo bolha:

#carrega o valor de neg = -32768 
lw 6,0,neg     	

#carrega o valor de n= 5 
lw 7,0,n	

#faz o nand do registrador 6 com o 7 para gerar o -1
#será usado para fazer comparações futuras
nand 5,6,7	
		
#adiciona 1 ao reg7 e armazena no reg6, servirá para o print do array
addi 6,7,1	

#carrega o i= 0
lw 1,0,i		


#adiciona 1 ao i para iniciar o loop do 1 ao 5
loop1: 	addi 1,1,1 	
	#carrega o j= i + 1
addi 2,1,1	
#verificar se chegou ao fim do loop para printar o array
       	 beq 2,6,print	
        


loop2:	lw 3,1,vetor	
#carrega o vetor[ i ]
	lw 4,2,vetor	
#carrega o vetor[ j ]
        	
nand 4,4,4	#faz o complemento do vetor[ j ]
        	addi 4,4,1	
        	
add 3,3,4	#subtração do vetor[ i ] - vetor[ j ]
        	lw 4,0,neg	
        	nand 4,4,3	
#verifica se o resultado da subtração foi negativo ou positivo
        

	 #se positivo então vetor[ i ] > vetor[ j ] -> trocar: | se não  -> checar:
         	beq 4,5,trocar	  
        	beq 0,0,checar           
        
trocar: lw 3,1,vetor	#carrega os valores
	lw 4,2,vetor	
        
        	sw 4,1,vetor	#armazena o vetor[ i ] no lugar do vetor[ j ] e virce versa
        	sw 3,2,vetor	
        
       	lw 3,1,vetor	#print dos dois vetores para verificar se ocorreu a troca corretamente
        	lw 4,2,vetor

        	beq 0,0,checar    #checar

checar: beq 2,7,loop1	   #se j = n volta para o loop1

	addi 2,2,1	#se não, adiciona 1 ao je retorna para o loop2
        	beq 0,0,loop2	

print:	lw 7,0,i	  	# percorre do 1 ao 5 do vetor 
	addi 7,7,1
	lw 1,7,vetor
        	addi 7,7,1
	lw 2,7,vetor
        	addi 7,7,1
       	lw 3,7,vetor
        	addi 7,7,1
       	lw 4,7,vetor
        	addi 7,7,1
       	lw 5,7,vetor
        	addi 7,7,1
  	lw 6,0,i			#zerar os reg para deixar somente os valores do vetor
       	lw 7,0,i			#deixar esteticamente bonito


halt #fim



i: .fill 0
n: .fill 5
neg: .fill -32768

vetor: .fill 24
  .fill 4
  .fill 1
  .fill 8
  .fill 5
  .fill 3

About

Bubblesort em risc-16

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published