Autor Tema: Funcion de program counter  (Leído 3918 veces)

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

Desconectado Fainx

  • PIC10
  • *
  • Mensajes: 4
Funcion de program counter
« en: 06 de Noviembre de 2009, 13:52:47 »
Saludos a todos los del foro, aqui denuevo estoy queriendo sacarme dudas, en este caso el funcionamiento del pcl. uso un pic P16F628A mi pregunta es con respecto al program counter supongamos k tengo la siguiente instruccion
PCL numero de instruccion
1        org 5
2       movlw 0x0f
3       addwf 0x0e
a lo que quiero llegar se que el program counter guarda el numero de instruccion proxima a ejecutar pero si antes de mi programa yo pongo org 5 quiere decir que para el program counter su proxima instruccion a ejecutar es la 6? o al poner org 5 solo indico que empiezo de la posicion 5 de memoria y el program counter tendra como valor instruccion 1 a su primera instruccion en el programa. Espero que se entienda.

Saludos.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Funcion de program counter
« Respuesta #1 en: 06 de Noviembre de 2009, 14:00:23 »
Haber cuando vos hagas por ejemplo:

Código: ASM
  1. Org  0x00
  2.     goto Inicio
  3.  
  4.  
  5.     org  0x05
  6. Inicio
  7.     movlw   0x0f..

Al iniciarse PC comienza en 0, pero en 0x00 se indica que se debe ir a la etiqueta inicio, osea que al ejecutar goto Inicio PC se carga con 5.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Fainx

  • PIC10
  • *
  • Mensajes: 4
Re: Funcion de program counter
« Respuesta #2 en: 06 de Noviembre de 2009, 15:03:21 »
Haber cuando vos hagas por ejemplo:

Código: ASM
  1. Org  0x00
  2.     goto Inicio
  3.  
  4.  
  5.     org  0x05
  6. Inicio
  7.     movlw   0x0f..

Al iniciarse PC comienza en 0, pero en 0x00 se indica que se debe ir a la etiqueta inicio, osea que al ejecutar goto Inicio PC se carga con 5.


Saludos!

Gracias por la respuesta entiendo lo que quieres explicarme pero mi pregunta va a no declarar el org 0x00 si no que el programa empieza directamente como
org 5.

   1.   org  0x05
   2.   Inicio
   3.   movlw   0x0f..

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Funcion de program counter
« Respuesta #3 en: 06 de Noviembre de 2009, 15:35:37 »
Pero es lo que explique, no carga 0x06, sino 0x05.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Funcion de program counter
« Respuesta #4 en: 06 de Noviembre de 2009, 18:36:32 »
Fainx, es tal como te lo explicó Suky.
Recuerda que, ORG no es una instrucción sino una directiva para el MPASM

Si a tu ejemplo lo escribimos tal como irá al PIC, te quedará así:

Código: [Seleccionar]
0x00 goto inicio
0x01
0x02
0x03
0x04
0x05 inicio movlw 0x0f
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Funcion de program counter
« Respuesta #5 en: 06 de Noviembre de 2009, 18:47:05 »
.

No se puede iniciar el programa con otra directiva que no sea ORG 0X00, porque es desde ahí desde donde el PIC comienza a leer el programa. Si empiezas tu código con ORG 0X05, dejás vacío el registro 0x00 de la memoria de programa. No vacío en realidad; alguna instrucción va a quedar almacenada ahí, y es la que el PIC ejecutará primero.

When you see a good move, look for a better one (Emanuel Lasker)