FOROS DE INFORMATICA

Programación => Otros => Mensaje iniciado por: ferney007 en Abril 30, 2018, 05:49:21



Título: Emsamblador MIPS
Publicado por: ferney007 en Abril 30, 2018, 05:49:21
Buenas Noches
He estado implementando este codigo que tengo en seudocodigo a Mips pero no me funciona, quien para una ayuda. :D
Entero vector1 [9] = {5,2,6,9,12,34,8,7}
Entero vector2 [9] = {}

Entero rangoMenor = 2;
Entero rangoMayor = 12;


Entero indiceVector1 = 0;
Entero indiceVector2 = 0;

Entero tamañoVector1 = 9;
Entero tamañoVector2 = 9;

Mientras (indiceVector1 < tam)
         Si(vector1[indiceVector1] >= rangoMenor)
               Si(vector1[indiceVector1] <= rangoMayor)
                        vector2[indiceVector2] = vector1[indiceVector1];
                        indiceVector1 = indiceVector1+1;
        indiceVector2 = indiceVector2 +1;
         FinSI
         FinSI
FIN Mientras

Esto fue lo que hice y no me funciona es mas al final para imprimir se me queda en un ciclo infinito.

.data
arreglo1: .word 5,2,6,9,12,34,8,7
arreglo2: .word

.text

addi $s0, $zero, 9     # rangoMenor
addi $s1, $zero, 12   #rangoMayor

addi $t1, $zero, 0 # posicionInicialVector1
addi $t2, $zero, 0 # posicionInicialVector2

addi $t3, $zero, 9 # tamañoVector1
addi $t4, $zero, 9 # tamañoVector2

la $s2,arreglo1
la $s3,arreglo2

for: slt  $t0, $t1, $t3
     beq $t0,$zero, fin_for
     sll $t5, $t1, 2
     add $t5,$s2,$t5     #500+i*4
     lw $t6,0($t5)
     bge $t6,$s0, RangoMenor
     RangoMenor:
     bleu $t6,$s1, AsignarValorArray2
     AsignarValorArray2:
     sll $t7, $t2, 2
     add $t8,$s3,$t8     #500+i2*4
     sw $t6,0($t8)
     addi $t1,$t1,1
     addi $t2,$t2,1
fin_for:

loop2:
    lw $t0, ($t8)
    li $v0, 1
    move $a0, $t0
    syscall
    addi $t1, $t1, 4
    bne $t1, $t2, loop2

Mil Gracias