• Domingo 22 de Diciembre de 2024, 20:35

Autor Tema:  Salto condicional en MIPS  (Leído 3309 veces)

perrete

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Salto condicional en MIPS
« en: Martes 5 de Julio de 2011, 20:54 »
0
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!

sergio__

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Salto condicional en MIPS
« Respuesta #1 en: Viernes 8 de Julio de 2011, 01:54 »
0
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"