SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: perrete en Martes 5 de Julio de 2011, 20:54

Título: Salto condicional en MIPS
Publicado por: perrete en Martes 5 de Julio de 2011, 20:54
Hola foreros, me gustaría plantearos una pequeña duda que tengo con los saltos condicionales (beq,bne...) Se que son instrucciones tipo I, conozco su formato y en general éste tiene un campo de 16 bits para indicar el tamaño del salto. Si lo he entendido bien, éste campo se suma al PC actual para obtener la nueva dirección. Mi duda es la siguiente: cómo se indica en ese campo si el salto es hacia delante o hacia atrás? Es decir, cual sería el contenido del campo para avanzar 100 posiciones y para retroceder 100?(por ejemplo) Se indica en Complemento a 2? Espero haberme explicado :P
Gracias por adelantado!
Título: Re: Salto condicional en MIPS
Publicado por: sergio__ en Viernes 8 de Julio de 2011, 01:54
mmm... hace mucho no toco esto, CREO que el salto es relativo al PC, es decir, si vos le das en el "jump_address" el valor 3, te va a saltar 3 instrucciones hacia adelante, (no me acuerdo si considera la instruccion del PC como la instruccion 1, o 0 (esto fijate) ), y para saltar hacia atras seria simplemente poner el -3, me parece que si, que trabaja en complemento a 2 en MIPS

si tenes una forma de obtener la direccion del salto, podes probarlo poniendo un salto a la instruccion anterior y fijandote el "jump_add"