Autor Tema: ASM desde 0  (Leído 89194 veces)

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

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3561
    • Impresiones en 3D
Re: ASM desde 0
« Respuesta #15 en: 08 de Diciembre de 2008, 20:09:13 »
MOVWF

Mueve el contenido del registro W a un registro cualquiera elegido por el programador. Sin duda alguna, esta instrucción, es otra muy usada en la programación ASM

Código: [Seleccionar]
          MOVWF       ADCON0
Si antes de la intrucción W vale B'10000001' y ADCON0 vale 0x0, después de la instrucción ADCON0 vale 0x81.

Para recordar MOVe es mover W es el registro W y File es registro.

No afecta ningún bit del registro STATUS.

NOP

No realiza ninguna operación. Solo consume un ciclo de instrucción.

Código: [Seleccionar]
          NOP
Para recordar No es no y OPeration es operación.

No afecta ningún bit del registro STATUS.

RETFIE

Carga al CP con el valor de la parte alta de la pila para volver al lugar dónde se encontraba el CP antes de atender la interrupción. Al mismo tiempo, pone a 1 el bit GIE para activar de nuevo las interrupciones.

Código: [Seleccionar]
         RETFIE
Para recordar REturn es retornar From es de la IntErrupt es interrupción.

No afecta ningún bit del registro STATUS.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3561
    • Impresiones en 3D
Re: ASM desde 0
« Respuesta #16 en: 17 de Diciembre de 2008, 14:51:52 »
RETLW

Carga al CP con el valor de la parte alta de la pila para volver al lugar dónde se encontraba el CP desde dónde se llamó a la subrutina y al retornar, lo hace con un literal cargado en W especificado por el programador. Esta instrucción, se utilizan en las tablas (para más detalle, ver la explicación del GOTO y CALL).


Ejemplo:

Código: [Seleccionar]
            RETLW          'L'
En este ejemplo, el MPLAB, carga en W el código ASCII correspondiente a la letra L

Extendiendo el ejemplo:

Código: [Seleccionar]
           PAGESELW       TABLA             ;CONFIGURA AL PCLATH PARA VOLVER AL LUGAR CORRECTO
           MOVFW            contador        ;CARGA A W LA POCICIÓN A LEER EN LA TABLA POR EJEMPLO 3
           CALL               TABLA            ;LLAMA A LA RUTINA TABLA
           CALL               LCD_DATO      ;LLAMA A LA RUTINA PARA MOSTRA AL LCD
           NOP
;
;
TABLA   ADDWF             PCL,F            ;SUMA AL PCL CON EL CONTENIDO DE W POR EJEMPLO 3
           RETLW              '1'                ;RETORNA CON 1 ASCII
           RETLW              '2'                ;RETORNA CON 2 ASCII
           RETLW              '3'                ;RETORNA CON 3 ASCII
           RETLW              'T'                ;RETORNA CON 4 ASCII

Este es un ejemplo sencillo de como utilizar RETLW. Para interpretar este código empezamos desde PAGESELW, supongamos que el CP está en esta instrucción (que está explicado que hace) luego pasa a la instrucción MOVFW     contador    y suponemos que tiene cargado 3 en decimal, por lo que W pasará a tener 3 en decimal. El CP continua con CALL     TABLA, el CP saltará por encima a todas las demás instrucciones y se dirige a la etiqueta TABLA y ejecuta la instrucción ADDWF     PCL,F En el código hablamos que le suma 3 al PCL, por lo que saltará al RETLW  '3' cargando a W con el código ASCII 3. Retorna justo debajo del CALL   TABLA, o sea retorna a CALL  LCD_DATO y ejecuta la rutina correspondiente, cuando termina, regresa al NOP (que puede ser cualquier instrucción que necesite el programador.
Si en cambio, contador hubiera tenido cargado 4 en decimal cuando llegue a la tabla y le sume al PCL este apuntará a RETLW    'T'  cargando en W el código correspondiente ASCII.

Para recordar RETurn es retornar Literal es literal W es el registro de trabajo W

No afecta ningún bit del registro STATUS.

RETURN

Carga al CP con el valor de la parte alta de la pila para volver al lugar dónde se encontraba el CP cuando se llamó a la rutina o subrutina.

La diferencia con RETLW es que RETURN regresa sin cambiar a W. Este se utiliza para terminar una rutina y no se necesite ningún dato. Por ejemplo en la rutina CALL   LCD_DATO no nos sirve que vuelva con ningún valor ya que es una rutina para enviar datos a un LCD, asi que esta rutina tendrá implementada RETURN

Por ejemplo:

Código: [Seleccionar]
             RETURN
No afecta ningún bit del registro STATUS

Para recordar RETURN es retornar.
« Última modificación: 21 de Diciembre de 2008, 10:46:59 por Leon Pic »
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3561
    • Impresiones en 3D
Re: ASM desde 0
« Respuesta #17 en: 21 de Diciembre de 2008, 12:31:12 »
RLF

Rota hacia la izquierda los bit de un registro seleccionado por el programador. El destino de la operación se puede elegir. Cada rotación equivale a multiplicar por 2 si el bit C del registro STATUS es 0.

Ejemplo:

Código: [Seleccionar]
              RLF         PORTC,F
Si antes de la instrucción PORTC vale B'00001000', después de la instrucción vale B'00010000'. Si se hubiera elegido como destino W, PORTC después de la instrucción continua valiendo B'00001000' y W vale B'00010000'

Para recordar Rotate es rotar Left es izquierda File es el registro.

Afecta a:

  • C se pone a 1 si hubo acarreo

RRF

Rota hacia la derecha los bits de un registro seleccionado por el programador. El destino de la operación se puede elegir. Cada rotación equivale a dividir por 2 si el bit C del registro STATUS es 0.

Ejemplo

Código: [Seleccionar]
             RRF         PORTB,F
Si antes de la instrucción PORTB vale B'10000000' después de la instrucción PORTB vale B'0100000'. Si se hubiera elegido como destino W, PORTB después de la instrucción continua valiendo B'10000000' y W vale B'01000000'

Para recordar Rotate es rotar Right es derecha File es el registro.

Afecta a:

  • C se pone a 1 si hubo acarreo

Extendiendo la explicación de las instrucciones RRF y RLF

A la hora de utilizar estas dos instrucciones, hay que prestarle atención al bit C del registro STATUS. La razón de esto, es porque la rotación se hace atravéz del bit C.

Supongamos que tenemos lo siguiente:

  • BIT C = 0
  • TEMP = B'00010000'

Ejecutamos la instrucción RRF y TEMP vale B'00001000'. O si ejecutamos la instrucción RLF TEMP vale B'00100000'

Pero si ahora tenemos:

  • BIT C = 1
  • TEMP = B'00010000'

Ejecutamos la instrucción RRF y TEMP vale B'10001000'. O si ejecutamos la instrucción RLF TEMP vale B'00100001'

Vemos como rota los bit dependiendo del valor del bit C. Pero anteriormente, avíamos dicho que estas dos instrucciones afectan al bit C. La actualización del bit C, lo hace después de la rotación. Lo vemos con un ejemplo:

Código: [Seleccionar]
           MOVLW  B'10001001'
           MOVWF  temp
           BCF   STATUS,C        ;PONEMOS A 0 AL BIT C
           RLF   temp,F          ;ROTAMOS A LA IZQUIERDA
           

Al ejecutar este programa, nos dará lo siguientes resultados:

  • TEMP = B'00010010'
  • BIT C = 1

Y para ver la diferencia vemos lo siguiente:

Código: [Seleccionar]
           MOVLW  B'00000001'
           MOVWF  temp
           BCF   STATUS,C        ;PONEMOS A 0 AL BIT C
           RLF   temp,F          ;ROTAMOS A LA IZQUIERDA
           

Al ejecutar este programa, nos dará lo siguientes resultados:

  • TEMP = B'00000010'
  • BIT C = 0

Algo que me había olvidado de mencionar pero que MIGSANTIAGO del foro de TODOPIC estuvo atento es que estás dos instrucciones, nos sirve para enviar datos en forma serial utilizando el bit C que lo veremos más adelante.

Recordemos que, para utilizar estas instrucciones para multiplicar o dividir, debemos asegurarnos de que el bit C, esté en 0.

SLEEP

Pone al microcontrolador en bajo consumo.

Código: [Seleccionar]
              SLEEP
Para recordar SLEEP es dormir.

Afecta a:

  • TD se pone a 1
  • PD se pone a 1

SUBLW

Resta el contenido de W con un literal de hasta 8 bit (.255). El resultado se guarda en W.

Código: [Seleccionar]
              SUBLW       .20
Si antes de la instrucción W vale .23 después de la instrucción W vale .3 Para saber si el resultado es negativo o positivo, hay que chequear el bit C del registro Status. Si hay acarreo, el resultado es negativo, y por el contrario, si no hay acarreo es positivo.

Para recordar SUBtraction es restar Literal es literal y W es el registro W.

Afecta a:

  • Z se pone a 1 si el resultado es 0
  • DC se pone a  si hay acarreo del bit del 4 al 5 bit del registro (recordemos que en la resta, es distinto a la suma, por eso, se pone a 0 si hubo acarreo).
  • C se pone a 0 si hubo acarreo (recordemos que en la resta, es distinto a la suma, por eso, se pone a 0 si hubo acarreo).
« Última modificación: 23 de Diciembre de 2008, 16:21:20 por Leon Pic »
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3561
    • Impresiones en 3D
Re: ASM desde 0
« Respuesta #18 en: 09 de Enero de 2009, 12:24:37 »
SUBWF

Resta el contenido de un registro seleccionado por el programador con el contenido del registro W. La fórmula es F - W = d. d es la dirección elegida por el programador en dónde se guardará el resultado que puede ser el registro W o el registro elegido por el programador.

Ejemplo:

Código: [Seleccionar]
           SUBWF        MINUENDO,W
Si antes de la instrucción W vale .55 y MINUENDO vale .56, después de la instrucción, MINUENDO vale .56 y W vale .1

Para recordar SUBtraction es resta W es el registro W y File es el registro elegido.

Afecta a:

  • Z se pone a 1 si el resultado es 0
  • DC se pone a 0 si hubo un acarreo del 4 bit al 5 bit (recordemos que en la resta, es distinto a la suma, por eso, se pone a 0 si hubo acarreo).
  • C se pone a 0 si hubo acarreo del 7 bit. (recordemos que en la resta, es distinto a la suma, por eso, se pone a 0 si hubo acarreo).

SWAPF

Intercambia los bits de un mismo registro elegido por el programador. Los 4 bit de menor peso, pasan a ser lo 4 bits de mayor peso, y los 4 bits de mayor peso, pasan a ser los 4 bits de menor peso. El destino puede ser seleccionado.

Cabe pensar que puede ser una instrucción de muy poco uso, pero todo lo contrario si se utilizan con las interrupciones. Microchips recomienda su utilización a la hora de salvar el contexto y restaurarlo en una interrupción ya que no modifica el registro STATUS. Cuando trabajemos con la interrupciones, se verá que es muy recomendable salvar el registro STATUS y W en la RAM para luego restaurarlos. Si utilizamos la instrucción MOVF, es afectado el bit Z, perdiendo su estado original en el momento de la interrupción. Esto se soluciona, utilizando la instrucción SWAPF. No se preocupen si no lo entiende por ahora. Lo entenderan cuando veamos ejemplo de interrupciones.

Ejemplo:

Citar
              SWAPF         STATUS,W

Si antes de la instrucción W bale H'55' y el registro STATUS vale B'00100100', después de la instrucción el registro STATUS vale H'24' y el registro W vale B'01000010'

Para recordar SWAP es intercambiar NIBBLE es porción File es el registro.

No afecta ningún bit del registro STATUS.

XORLW

Realiza la operación lógica XOR entre un literal o valor y el registro W. El resultado queda guardado en el registro W.

Ejemplo:

Código: [Seleccionar]
               XORLW        B'11000101'
Si antes de la instrucción W vale B'11111000', después de la instrucción W vale B'00111101'.

Para recordar XOR es la operación lógica XOR Literal es un valor W es el registro W.

Afecta a:

  • Z se pone a 1 si la operación es 0

XORWF

Realiza la operación XOR entre un registro elegido por el programador y el registro W. La operación es F XOR W = d. El resultado se puede elegir dónde será guardado.

Ejemplo:

Código: [Seleccionar]
               XORWF        PORTB,F
Si antes de la instrucción PORTB vale B11111110' y W vale B'00000001', después de la instrucción W vale .1 y PORTB vale B'11111111'.

Para recordar XOR es la operación lógica XOR W es el registro W y File es el registro elegido.

Afecta a:

  • Z se pone a 1 si la operación es 0
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3561
    • Impresiones en 3D
Re: ASM desde 0
« Respuesta #19 en: 08 de Febrero de 2009, 12:15:45 »
Una vez que vimos todas las instrucciones y asumiendo que ya se la saben de memoria (tiempo tuvieron de sobra) y si no lo han echo, es hora de hacerlo, empezemos a escribir programas muy sencillos. Pero ¿cómo?. Si se están asiendo esta pregunta, es hora de leer desde el primer mensaje. Tienen que acordarce las pociciones de las cuatro columnas.

Recuerden que vamos a escribir los programas en el MPLAB, por lo que si aún no lo tienen, es hora de descargarlo de la página de Microchip en forma gratuita e instalarlo en la PC. Lamentablemente, este programa trabaja solo bajo windows, por los que tienen mac o Linux, no lo prodrán hacer si no es por un emulador de windows y aún así, no se si funcione correctamente.

Empezaremos bien desde el principio y para ello, voy a explicar cosas nuevas. Todo programa tiene un  encabezado que se repite en cada programa nuevo y que varía según el PIC a utilizar y las prestaciones del programa a escribir. Muchas de las personas crean plantillas nuevas para ahorrarce el trabajo. Yo soy una de ellas y aquí les doy una plantilla que pueden utilizar sin problemas y modificarlas según su necesidad.

He aquí la plantilla que también está adjuntado.

         LIST      P=16F877A
         INCLUDE      <P16F877A.INC>
         __CONFIG   _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
;
;---------------------------------------------------------------
;VARIABLES.
;---------------------------------------------------------------
;
         CBLOCK      H'20'

         ENDC
;
RESET      ORG         H'00'
         GOTO      INICIO
         ORG         H'04'         ;VECTOR INTERRUPCIÓN
INTERRUP
;
INICIO
;
         END


Primera línea:

LIST  P=16F877A

Esta línea, sive solo para el MPLAB y le indica que el PIC a utilizar es el 16F877A. Se debe actualizar según sea necesario.

Segunda línea:

INCLUDE   <P16F877A.INC>

Esta línea sirve a la hora de compilar ya que dentro de este archivo que viene incluido dentro del MPLAB, le indica al ensamblador dónde están ubicados cada registro y el nombre de cada bits del PIC a utilizar así, nos ahorra de hacerlo nosotros mismos. Si desean abrir el archivo, lo pueden hacer con el notepad o cualquier editor de texto. Se debe actualizar según sea necesario.

Tercera línea:

__CONFIG   _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

Linea muy importante pero se puede omitir. Aquí se configura la palabra de configuración del PIC y que está en el datasheet del pic correspondiente.
En mi caso, yo la omito y luego lo configuro desde el ICPROG a la hora de pasar el archivo .hex al pic. Es por eso que esta línea está incompleta para el pic a utilizar pero completa para el PIC 16F84.

Vemos en más detalle esta línea: __CONFIG Directiva para el ensamblador de que debe generar la palabra de configuración correspondiente de acuerdo a:

_CP_OFF la protección de lectura del PIC desabilitado.
_PWRTE_ON Reset de encendido habilitado
_WDT_OFF Perro guardián desabilitado.
_XT_OSC Oscilador a cristal.

El caracter & sirve para unir una directiva con otra.
« Última modificación: 08 de Febrero de 2009, 12:22:58 por Leon Pic »
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3561
    • Impresiones en 3D
Re: ASM desde 0
« Respuesta #20 en: 08 de Febrero de 2009, 14:34:02 »
Cuarta línea:

;
;---------------------------------------------------------------
;VARIABLES.
;---------------------------------------------------------------
;

Este no es más que un pequeño encabezado. El ensamblador omitirá estas líneas y solo porque empieza con ";". Recuerden que, toda línea que empieze con ";" es comentario y el ensamblador la omitirá.

Justo por debajo de este encabezado, penemos las variables. ¿a que le llamo variables? a pociciones de memorias o nombre de bit que yo quiera darle personalmente.
Por ejemplo, dentro del archivo P16F877A.INC a la pocición de memoria 0x05 le llama PORTA pero si yo quero llamarlo PUERTO_A, es quí dónde le indico al ensamblador.

¿Cómo se hace?

Es muy fácil y con la instrucción "EQU"

PUERTO_A   EQU  H'05'

Si al Bit RA6 lo quero llamar LED6 lo hacemos así:

LED6  EQU  6

Supongamos que quiero encender el LED 6 que está en el Puerto a bit 6, y este se activa con un 1 lógico, ponemos esta instrucción:

BSF   PUERTO_A,LED6

Y el ensamblador lo traducirá así: BSF  0X05,0X06

Quinta línea:

 CBLOCK      H'20'

         ENDC

A estas dos líneas las unifique porque van juntas. Entre ellas van los nombres de cada pocición de la RAM que nosotros querramos nombrar, o cada Registro que querramos renombrar.
Recuerden que los registros están implementados en la RAM y que la pocición de la RAM que puede utilizar el usuario para guardar cosas, empieza desde una pocición que está indicada en el datasheet. Para el caso de 16F877 empieza desde la pocición 0x20 como lo ven en la figura siguiente.


La directiva CBLOCK      H'20' indica que empezamos a nombrar pociciones de memoria desde la ubicación 0x20. Por ejemplo

CBLOCK  H'20'
temperatura
demora1
demora2
ENDC

La pocición 0x20 se llama temperatura, la pocición 0x21 se llama demora1 y así sucesivamente. Tambien existe otra forma de nombrar o renombrar pociciones de memoria o registro, y ya lo vimos que es con la directiva EQU. por ejemplo:

temperatura   EQU   H'20'
demora1        EQU   H'21'
demora2        EQU   H'22'

Sexta línea:

RESET      ORG         H'00'
         GOTO      INICIO
         ORG         H'04'         ;VECTOR INTERRUPCIÓN
INTERRUP

He unificado estas líneas porque por lo general así se escribe en la mayoría de nuestros programas. Vemos con más detalles estas líneas.

RESET  ORG  H'00'

Aquí es en dónde empieza el CP cuando se enciende al PIC. Y estos se debe, porque cuando hay un reset por el pin MCLR o un reset interno producido por, encendido del PIC o, por ejemplo, del perro guardía, el vector reset se ubica en la pocición 0x00 de la memoria de programa.
Como pueden apreciar, hemos llamado a la pocición 0x00 con el nombre de RESET, ya que la primer columna es una etiqueta. Las etiquetas sirven para nombrar pociciones de memoria de programa.

ORG  H'00' indica que se empieza a escribir desde la pocición 0x00 por lo que la siguiente instrución, quedará alojada en la pocición 0x00. ORG es una directiva, y solo sirve para el ensamblador. Esta línea, SIEMPRE debe estar y no se puede modificar, salvo la etiqueta.

Siguiente línea es GOTO  INICIO, esta instrucción queda alojada en la pocición 0x00 y es un salto a la etiqueta INICIO. Este salto tiene que estar, porque en las siguientes pociciones de memoria de programa, está la interrupción, externa e interna del PIC. Por eso es necesario hacer el salto.

Siguiente línea nos encontramos con ORG  H'04', como se dieron cuenta, es una directiva. Esta pocición de memoria, indica el vector de interrupción. Cuando estén habilitadas las interrupciones y una de ella se activa, el CP apuntará aquí, a la pocición 0x04.

Siguiente línea nos encontramos con la etiqueta INTERRUP. Si trabajamos con las interrupciones, aquí es donde escribiremos lo que necesitamos hacer con ellas.

Séptima línea:

;
INICIO
;

Vemos la etiqueta INICIO. Aquí vendrá el CP cuando alla un reset gracias al GOTO INICIO ubicado en la pocición 0x00 de la memoria de programa. De esta manera, saltamos un montón de instrucciones que no debemos ejecutar antes. Como por ejemplo las interrupciones si hubiese.
Por ende, a partir de esta etiqueta, estará nuestro programa principal. Configuraremos los puertos, las insterrupciones y empezaremos a darle trabajo al CP.

Octava línea:

END

Esta es una directiva y solo sirve para el ensamblador indicando que después de esta directiva, se terminó el programa. Instruciones que estén por debajo de esta línea, no serán tenido encuenta. Y esta directiva es obligatoria colocarla.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3561
    • Impresiones en 3D
Re: ASM desde 0
« Respuesta #21 en: 04 de Marzo de 2009, 12:53:25 »
Suky, está creando un tutorial muy bueno, excelente. Debido a que lamentablemente, no dispongo de mucho tiempo (y lo pueden comprobar viendo que no permanezco mucho tiempo conectado), no puedo continuar por ahora este tutorial. A demás de que no quiero pisarme con Suky ya que él lo está haciendo mucho mejor que yo.

Es por eso que me he quedado acuerdo con él, por medio de mensajes privados y, la continuación de este curso será el tutorial de él Mis primeros programas Tutorial PIC16F84A

No obstante, no doy por cerrado por completo este tutorial. De seguro seguiré escribiendo y explicando más detalles.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado liet

  • PIC10
  • *
  • Mensajes: 3
Re: ASM desde 0
« Respuesta #22 en: 20 de Marzo de 2009, 17:45:39 »
   Ante todo muy buenos días a todos los participantes del foro os pido disculpas ya que esta es la primera ves que entro a este foro, lo cierto es que necesito una gran ayuda estoy trabajando con un pic24 y no puedo utilizar el asm como tal segun e logrado averiguar y entender se necesita asm30 y la forma de escribir creo es diferente si alguien me puede ayudar como se escribe en asm para pic24f128ga010 segun asm30

Desconectado canival35

  • PIC10
  • *
  • Mensajes: 36
Re: ASM desde 0
« Respuesta #23 en: 23 de Marzo de 2009, 05:22:36 »
Muy buen trabajo leon felicidades, es una excelente ayuda para los que vamos empezando con esto de los pics, esta mejor explicado que algunos de los libros mas polulares de cominezo que hay para pics, seria de gran ayuda que explicaras la forma en que configuras al pic desde el ICPROG, saludos   :mrgreen:


creo que postie en mal lugar ojala que algun moderador pueda borrar el mensaje porque ya lo publique en la seccion correspondiente gracias :)
« Última modificación: 23 de Marzo de 2009, 05:53:53 por canival35 »

Desconectado canival35

  • PIC10
  • *
  • Mensajes: 36
Re: ASM desde 0
« Respuesta #24 en: 23 de Marzo de 2009, 05:29:53 »
   Ante todo muy buenos días a todos los participantes del foro os pido disculpas ya que esta es la primera ves que entro a este foro, lo cierto es que necesito una gran ayuda estoy trabajando con un pic24 y no puedo utilizar el asm como tal segun e logrado averiguar y entender se necesita asm30 y la forma de escribir creo es diferente si alguien me puede ayudar como se escribe en asm para pic24f128ga010 segun asm30

Liet mire en un articulo de Microchip que apartir de la version de MPLAB 8.1 comienzan a incluir utilerias para PICs de alta tecnologia como lo son los de la familia que manejas, que version de IDE estas usando tu ???
seria buena idea que te dieras una vuelta por lso foros de microchip sobre el pic24F aqui esta el link para la seccion de la familia PIC24 PIC24

Desconectado liet

  • PIC10
  • *
  • Mensajes: 3
Re: ASM desde 0
« Respuesta #25 en: 26 de Marzo de 2009, 18:59:29 »
hola Amigo mira yo estoy usado la V8.2 del MPLAB pero mo medeja escdribir de la forma tradicional asm ya que la version es asm30, y e estado buscando por hay pero nada, solo necesito saber como se escribe ya de hay en adelante a darse golpes hasta aprtender, buen amigo gracias

Desconectado gcgiron

  • PIC10
  • *
  • Mensajes: 42
Re: ASM desde 0
« Respuesta #26 en: 18 de Abril de 2009, 23:28:49 »
LeonPIC, muchas gracias por sacar de tu tiempo para enseñar sobre ASM.

Excelente tutorial para nosotros los novatos.

Guido.
En este mundo he visto algo más: que no son los veloces los que ganan la carrera, ni los valientes los que ganan la batalla; que no siempre los sabios tienen pan, ni los inteligentes son ricos, ni los instruidos son bien recibidos; todos ellos dependen de un momento de suerte.

Eclesiastes 9:11

Desconectado willie_rosario_salsa

  • PIC12
  • **
  • Mensajes: 75
Re: ASM desde 0
« Respuesta #27 en: 24 de Diciembre de 2009, 18:32:34 »
Hola compadre,

Me parece perfecto el foro que has expuesto, sinceramente te felicito.

Yo hubiero querido que esto exista cuando empecé con la electrónica, así podía dejar de asistir a las estresantes clases con Wilmer Naranjo.  :lol:

Saludos desde Guayaquil, Perla Del Pacífico.
 :-/ :-/ :-/
"Es chévere ser grande, pero... Más grande es ser chévere." --- Héctor Lavoe.

Desconectado conander

  • PIC10
  • *
  • Mensajes: 2
Re: ASM desde 0
« Respuesta #28 en: 04 de Octubre de 2010, 14:48:49 »
Leon Pic, solo agradecerte este tutorial. Llevo toda mi vida intentando aprender ensamblador y por primera vez me empiezan a quedar las cosas algo mas claras.
Un cordial saludo

Hola compadre,

Me parece perfecto el foro que has expuesto, sinceramente te felicito.

Yo hubiero querido que esto exista cuando empecé con la electrónica, así podía dejar de asistir a las estresantes clases con Wilmer Naranjo.  :lol:

Saludos desde Guayaquil, Perla Del Pacífico.
 :-/ :-/ :-/



Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3561
    • Impresiones en 3D
Re: ASM desde 0
« Respuesta #29 en: 06 de Octubre de 2010, 06:37:01 »
Gracias chicos  :-/
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.