Autor Tema: Problemas con rutinas y retornos  (Leído 1770 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado FirmSoft

  • PIC16
  • ***
  • Mensajes: 118
Problemas con rutinas y retornos
« en: 16 de Octubre de 2004, 11:05:00 »
    En una llamada a una rutina de lectura:

call LEER


LEER
   btfsc VALOR
   goto EsUno
   goto EsCero
EsUno
   return
EsCero
   return



poner dos returns dentro de la misma rutina... afecta en algo?... porque en un codigo que estoy haciendo necesito algo similar a esto y al poner 2 returns el programa actua de manera anormal .

Alguna opinion....Gracias!

Desconectado PWRINVITRO

  • PIC12
  • **
  • Mensajes: 78
RE: Problemas con rutinas y retornos
« Respuesta #1 en: 16 de Octubre de 2004, 11:18:00 »
JEJEJEJJEJE no vale esos RETURN son totalmente independientes al micro no le importa si la opcion fue UNO o si fue CERO lo q le importa es encontrar en elgun momento el RETURN del CALL q se realizo.... de hecho puedes tener hasta 8 CALLS anidados ya que la profundidad de pila es 8.... si tienes algun problema con comportamientos anormales debe ser en la logica de programacion mas no en los yamados!!!

Desconectado FirmSoft

  • PIC16
  • ***
  • Mensajes: 118
RE: Problemas con rutinas y retornos
« Respuesta #2 en: 16 de Octubre de 2004, 19:50:00 »
   Osea que el llamado se hace normal, y para retornar no importa que return usemos mientras sea return?... osea.. podemos tener una rutina LECTURA y una rutina LECTURA2... y usar para retornar a la llamada el mismo return de la otra rutina... es decir:

call LECTURA2

call LECTURA

LECTURA
        ....
        ....
LECTURA2
        ....
        ....
        return

   Otra pregunta.... aparte de esto... la instruccion GOTO... funciona como la instruccion CALL ??? es decir, al encontrar un return, retorna o es solo un salto y al encontrar el return regresa a la llamada de la rutina?? ... Gracias y mil saludos!

Desconectado Micom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 782
RE: Problemas con rutinas y retornos
« Respuesta #3 en: 17 de Octubre de 2004, 00:47:00 »
Solo es de salto no hay que poner ningun return ni nada, solo que deve de saltar a una etiqueta.          
El programador GTP USB PLUS es un super programador
GRACIAS dobles amigo SISPIC

Tan solo queda seguir sobreviviendo

Desconectado PWRINVITRO

  • PIC12
  • **
  • Mensajes: 78
RE: Problemas con rutinas y retornos
« Respuesta #4 en: 17 de Octubre de 2004, 09:59:00 »
Saludos... las instrucciones GOTO $-x donde x=0,1,2,3...,n, n<=15(para q sea util) y las btfss, btfsc son instrucciones de saltos relativos y se usan primordialmente para moverte dentro de una misma rutina segun se cumpla una condicion.... en cambio las instrucciones de CALL y GOTO son instrucciones de salto absoluto.. para moverse por todo el codigo la diferencia esta en que si usa un GOTO para ir a una rutina y luego kieres devolverte a donde hisite el goto debes poner una etiketa en el lugar donde te kieres devolver u usar otro GOTO... con el CALL basta con poner un RETURN para seguir con la ejecucion normal del programa... claro cuando usas un GOTO no necesarioamente tienes q devolverte al lugar de donde lo hiciste... es para q veas la diferencia y con respecto a lo otro si haces yamado a lectura y ademas kieres q se ejecute lectura 2 puedes hacerlo asi... si yamas a lectura2 y no kieres q se ejecute lectura tambien esta correcto pero si kieres q soloo se ejecute lectura sin pasar por lectura2 entonces debes poner el RETURN al final de LECTURA!!!! saludos!!!

Desconectado FirmSoft

  • PIC16
  • ***
  • Mensajes: 118
RE: Problemas con rutinas y retornos
« Respuesta #5 en: 17 de Octubre de 2004, 14:57:00 »
   Mil gracias... jeje.. debes pensar que soy de madera ... solo me quedo una duda de todo esto y es en la parte donde dices:

las instrucciones GOTO $-x donde x=0,1,2,3...,n, n<=15(para q sea util)  

En que varia el cambio de los numero de 0 a 15 y porque no ecceder los 15?? ... Gracias y disculpa por tatos interrogatorios

Desconectado PWRINVITRO

  • PIC12
  • **
  • Mensajes: 78
RE: Problemas con rutinas y retornos
« Respuesta #6 en: 17 de Octubre de 2004, 15:05:00 »
Aclarado por messenger!!