Autor Tema: Sera ASM ???  (Leído 15927 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Sera ASM ???
« Respuesta #45 en: 07 de Abril de 2007, 21:15:04 »
Hola..aca he hecho una recopilacion de algunos de los ejemplos que tan bien expone BRUNO en este hilo...

Ademas cumple con el desafio de poder SETEAR un BIT a voluntad sin alterar el contenido original del REGISTRO...!!!

Estuve ensayando con el SIMULADOR del MPLAB (tengo la version 5.00.00000000000000000000000 pero anda bien !!!)...ahi se ve casi todo lo que esta pasando...por ahora solo interpreto la ventana de los SFR, desde ahi pude verificar el siguiente programa...

LIST      P=16F84, F=INHX8M
            include <P16F84a.inc>
       ERRORLEVEL -302 , -305
       RADIX   DEC


FIJATE macro Valor

 if(Valor < .20)
   bsf   PORTA,00
   bcf   PORTA,01
   bsf   PORTA,02
 endif

 if(Valor >= .20) && (Valor < .30)
   bcf   PORTA,00
   bsf   PORTA,01
   bcf   PORTA,02
 endif

 if(Valor > .30)
   bcf   PORTA,00
   bcf   PORTA,01
   bsf   PORTA,02
 endif

  endm

PONEUNO macro Registro, Rotaciones
   if (Registro>0x6f)                                                       ;NO SE BIEN PORQUE ESTE VALOR ES EL MAXIMO ???
      error El registro supera la posición máxima(0x6f)
   else
   BSF   STATUS,C     
   endif
   variable i
i = 0
   while (i != Rotaciones)
      rlf Registro,F
i += 1
   endw
   endm


   org 0x000        ;Vector de inicio de memoria FLASH del PIC.

        BSF   STATUS,RP0
        CLRF   TRISA          ;puertoA todo como salida
   CLRF   TRISB
        BCF   STATUS,RP0
        CLRF   PORTA
   CLRF   PORTB
   CLRF   FSR
   

        FIJATE .15      ;MANDA A COMPARAR VALORES, PARA AJUSTAR PA
        movfw   PORTA
   movwf   PORTB
   BCF   STATUS,C


   PONEUNO FSR,4      ;EL BIT A SETEAR ES EL CUARTO, NO ALTERA PB
   BCF   STATUS,C
   MOVFW   FSR
   IORWF   PORTB
   

LOOP   GOTO   LOOP

     end

Todo esto era chino "mandarin" para mi hace un mes, ahora y alentado por ustedes, puede comprender, aunque sea un poco...parte de esto se lo debo a BRUNO...GRACIAS !!!

SALUDOS !!!

_____________________________
"Justo a mi, me toco ser Yo" QUINO


Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Sera ASM ???
« Respuesta #46 en: 07 de Abril de 2007, 23:32:47 »
Hola nuevamente resitencio.

Sigue estando el detalle que siempre te comento. Es resto está muy bien.
El problema no surge si llamas a la macro PONEUNO sólo una vez. Pero puede surgir si no tomas ciertas precauciones y usas esa macro mas de una vez en tu programa.

El error potencialmente presente no es tan visible a primera vista, entonces te lo demuestro de manera practica:

Luego de llamar a la macro SETEOUNO FSR,4 el FSR = b'00010000'
¿Bien?

Si ahora llamo de nuevo a la macro haciendo por ej. SETEOUNO FSR,6

vas a poder apreciar que el bit que estaba seteado de la llamada anterior(el bit 4) va a ensuciar tu registro FSR, quedando: FSR = b'01000100'(segun calculo a simple vista).

Te invito a que lo pruebes y me comentes si estoy en lo cierto.

Entonces, o bien limpias el registro FSR antes de comenzar a realizar las rotaciones, o bien podes tambien poner la linea: bcf STATUS,C LUEGO DE rlf Registro,F.

¿Se entendió?

Saludos! ;)
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Sera ASM ???
« Respuesta #47 en: 08 de Abril de 2007, 02:48:04 »
De a poco lo voy "lijando", porque esta con varias "astillas" este codigo...Cuando ponia FSR,4, me seteaba el bit Nº3, por eso sumo 1 en el ELSE, el cual me sirve para ir haciendo las ROTACIONES...Creo que ahi va queriendo !!!

PONEUNO macro Registro, Rotaciones
   if (Registro>0x6f)
      error El registro supera la posición máxima(0x6f)
   else
   CLRF   FSR
   INCF   FSR
   BCF   STATUS,C     
   endif
   variable i
i = 0
   while (i != Rotaciones)
   rlf Registro,F
i += 1
   endw
   endm


   org 0x000        ;Vector de inicio de memoria FLASH del PIC.

        BSF   STATUS,RP0
        CLRF   TRISA          ;puertoA todo como salida
   CLRF   TRISB
        BCF   STATUS,RP0
        CLRF   PORTA
   CLRF   PORTB
   CLRF   FSR        
   
   PONEUNO FSR,5      ;EL BIT A SETEAR ES EL quinto, NO ALTERA PB
   BCF   STATUS,C
   MOVFW   FSR
   IORWF   PORTB   

LOOP   GOTO   LOOP
        end

Sigo aprendiendo, por ahora no queme nada ni a nadie,  :D pienso tomarme todo este año para ir mejorando estos detalles...Hare caso a esas palabras, que dijeron "NUNCA es tarde para aprender"... :lol: :-) :lol: :-) :lol:

Porque tomas a 0x6F como limite maximo, quise cambiarlo, pero el compilador sugiere ese mismo numero, de donde sale ???

Que significado tiene en la columna del simulador, identificada como CHAR, el @ - E - / - + ,etc... ???

SALUDOS !!!

______________________________
"Justo a mi, me toco ser Yo" QUINO
« Última modificación: 08 de Abril de 2007, 02:57:11 por Resistencio »

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Sera ASM ???
« Respuesta #48 en: 08 de Abril de 2007, 04:52:58 »
Ahora otro que deja el Nº de BIT "a pedido" el Nº que se escribe es el que se setea, sin necesidad de hacer INCF FSR...pero ROTANDO a la drecha...Guarda con "MURRAY", que la viene "cazando" !!!

PONEUNO macro Registro, Rotaciones
   if (Registro>0x6f)
      error El registro supera la posición máxima(0x6f)
   else
   CLRF   FSR
   BSF   STATUS,C     
   endif
   variable i
i = 8
   while (i != Rotaciones)
   rrf Registro,F
i -= 1
   endw
   endm

            PONEUNO FSR,7      ;EL BIT A SETEAR ES EL septimo, NO ALTERA PB
   BCF   STATUS,C
   MOVFW   FSR
   IORWF   PORTB   

LOOP   GOTO   LOOP

     end

SALUDOS !!! (espero posibles correcciones, sugerencias, acotaciones...!!! :))

______________________________
"Justo a mi, me toco ser Yo" QUINO

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Sera ASM ???
« Respuesta #49 en: 10 de Abril de 2007, 18:54:15 »
Hola Resistencio.

Veo que vas encontrando distintas variantes para hacer lo mismo, lo que es muy bueno para agilizar la mente.
Debo recordarte que hay que tener cuidado a la hora de elegir qué debería ser macro y qué función, ya que un abuso de macros van a producir seguramente que te devores la memoria FLASH sin sentido.

Cometí un error. El valor correcto es 0x7F. No te guíes tanto por eso.
Lo puse más que nada para enseñarte a generar errores cuando no querés que se compile el programa por un error "grosso".Igualmente te voy explicar el significado y sus limitaciones.

El 0x7F obliga a que la posicion de memoria que pasás por referencia sea menor a 0x80.
Si por ejemplo TRISA = 0x85, entonces hacer PONEAUNO TRISA,4 va a producir un error ya que 0x85 > 0x7F.
Sin embargo es perfectamente factible hacer PONEAUNO TRISA,4, por lo que esa limitación que puse sería errónea(¡cuidado! que como 0x85 excede el valor 0x7F habrá que estar en el banco de memoria correcto para afectar realmente a dicha posicion de memoria).

Veo que ya vas agarrandole la mano a esto. Espero ver pronto algun proyecto tuyo.
Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Sera ASM ???
« Respuesta #50 en: 11 de Abril de 2007, 02:31:52 »
Gracias BRUNO, como siempre, claro y preciso !!!

Estoy probando como anda el simulador, que parece util para ver que le pasa a los registros declarados y a los SFR...tambien lei un post tuyo del año 2003, donde decias que no es muy confiable el simulador de MPLAB, por lo menos el de aquellos años (te recuerdo que estoy usando una version de ese entonces la 5.00...recientemente baje la 7.50...pero aun no la use...)

Aun, y muy a pesar de todas las explicaciones que me diste, me confunde un poco el valor que toma un registro y su relacion con la posicion de memoria que ocupa...asi que estuve simualndo eso para ver que sucede...

Tengo declarado el reg AUXA en posicion 0E de RAM y hago lo siguiente...

            MOVLW   ((4 / 2) * (2 / 2 + 4))   ;esto es para probar que hacen esos benditos operandos :-)
   MOVWF   AUXA                          ;aca el reg AUXA toma el valor de .10 (lo que parece esperable y/o correcto...)
   BCF   STATUS,C
   MOVLW   (AUXA + 1 + 2)           ;aca que esperaba que tomara el valor de .13, toma el valor 0E + 1 + 2 =  17
   MOVWF   AUXA                          ;es decir el valor de posicion 0E mas 3 = 17

Esto me tiene "loco", no me "avivo" porque pasa esto...la conclusion pareceria ser que cuando lo fuerzo, se carga con ese valor y cuando lo asumo precargado, toma el valor de su posicion...es probable que este exponiendo una incoherencia, pero es producto de lo novedoso para mi (extraño las 6DQ6) :D...no encuentro en ningun lado, salvo en este FORO y en tus explicaciones, la claridad que preciso...

Por otro lado se me ocurre pensar que posicion toma la variable (i) ???, en algun lado debe alojarse...el simulador pone ADDRESS 05, igual que el PORTA...sera correcto ???

Porque no hay ejemplos de como usar los otros operandos en ningun lado... ???

Como se pueden usar y donde los "operators":

>> Right Shitf (val=flags >>1)..................que sera esto ???  :shock:

>>=3 Right Shitf, set equal (flags>>=3)..................por ahora chino "cantones) !!!  :shock:

Y asi unos cuantos mas !!!

Estoy tratando de leer algo de BASIC, por la similitud de estos operandos y ver si se me pueden aclarar un poco estos conceptos...Pero todo me resulta empirico...lo escribo en el ensamblador y veo que hacen, asi me paso horas...

Bueno, BRUNO, una vez mas, gracias por tu paciencia y por la buena onda, en contestar estas "liviandades", que imagino para vos ya estan mas que superadas !!!

SALUDOS !!!

______________________________
"Justo a mi, me toco ser YO" QUINO

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Sera ASM ???
« Respuesta #51 en: 13 de Abril de 2007, 12:49:00 »
Antes que nada, perdoná la demora.

Gracias BRUNO, como siempre, claro y preciso !!!

Estoy probando como anda el simulador, que parece util para ver que le pasa a los registros declarados y a los SFR...tambien lei un post tuyo del año 2003, donde decias que no es muy confiable el simulador de MPLAB, por lo menos el de aquellos años (te recuerdo que estoy usando una version de ese entonces la 5.00...recientemente baje la 7.50...pero aun no la use...)

Yo he tenído algunos problemas con el MPASM en los que no se comportaba como debía, pero en las ultimas versiones no he visto errores tan "grossos". Usalo. Es muy útil.

Aun, y muy a pesar de todas las explicaciones que me diste, me confunde un poco el valor que toma un registro y su relacion con la posicion de memoria que ocupa...asi que estuve simualndo eso para ver que sucede...

Tengo declarado el reg AUXA en posicion 0E de RAM y hago lo siguiente...

            MOVLW   ((4 / 2) * (2 / 2 + 4))   ;esto es para probar que hacen esos benditos operandos :-)
   MOVWF   AUXA                          ;aca el reg AUXA toma el valor de .10 (lo que parece esperable y/o correcto...)
   BCF   STATUS,C
   MOVLW   (AUXA + 1 + 2)           ;aca que esperaba que tomara el valor de .13, toma el valor 0E + 1 + 2 =  17
   MOVWF   AUXA                          ;es decir el valor de posicion 0E mas 3 = 17

Esto me tiene "loco", no me "avivo" porque pasa esto...la conclusion pareceria ser que cuando lo fuerzo, se carga con ese valor y cuando lo asumo precargado, toma el valor de su posicion...es probable que este exponiendo una incoherencia, pero es producto de lo novedoso para mi (extraño las 6DQ6) :D...no encuentro en ningun lado, salvo en este FORO y en tus explicaciones, la claridad que preciso...

Bueno.Seguimos dando vueltas alrededor de lo mismo.
No te hagas más lío.
Si vos ponés:
MiReg EQU 0x0E

CADA VEZ QUE ESCRIBAS MiReg en el programa, el MPASM lo va a reemplazar por 0x0E. Escribir MiReg o escribir 0x0E es exactamente lo mísmo.

NO CREAS QUE POR USAR EL EQU Y ASIGNARLE UN VALOR, EL MPASM CREA UN VINCULO ESTRICTO CON ESA POSICION DE MEMORIA A LA QUE HACE REFERENCIA.

QUE VOS USES EL MiReg PARA REFERIRTE A LA POSICION DE MEMORIA RAM 0x0E ES UNO DE LOS TANTOS USOS QUE PODES DARLE.

PODRIAS TAMBIEN PONER POR EJEMPLO: movlw MiReg, LO CUAL SERIA INTERPRETADO POR EL MPASM COMO movlw 0x0E.

Volviendo al código que expusiste, fijate cómo sería para que haga lo que querés(usando un simulador o el PIC):

   MOVLW   ((4 / 2) * (2 / 2 + 4))   ;esto es para probar que hacen esos benditos operandos
   MOVWF   AUXA                          ;aca el reg AUXA toma el valor de .10 (lo que parece esperable y/o correcto...)
   BCF   STATUS,C
   MOVF   AUXA,W
   ADDLW   1 + 2
   MOVWF   AUXA                          ;es decir el valor de posicion 0E mas 3 = 17

El resto de los lenguajes de programacion de más alto nivel(como el BASIC) sí hacen lo que vos quisiste hacer, pero esto es debido a que poseen un compilador que se encarga de transformar esas lineas a assembler.
Si vos querés desligarte por completo de las instrucciones del PIC(es decir, las 35 de la familia 16F) entonces te recomiendo cualquier otro lenguaje de programacion para PICs existente, excepto el assembler. Si decidís seguir con el ASM, entonces deberías saberte esas 35 instrucciones a rajatabla.

Por otro lado se me ocurre pensar que posicion toma la variable (i) ???, en algun lado debe alojarse...el simulador pone ADDRESS 05, igual que el PORTA...sera correcto ???

La variable i es una variable auxiliar que usamos sólo con meros propósitos algebraicos o comparacionales.
La variable i es creada por el MPASM, y si tu interés es saber dónde se aloja esa variable i, pues la respuesta es, seguramente, en la RAM DE LA PC. El MPLAB la crea para que le sirva de apoyo al usuario programador durante sus calculos auxiliares. Una vez realizados los calculos necesarios, el MPASM la destruye. NO TIENE NADA QUE VER CON LA MEMORIA DEL PIC.

Porque no hay ejemplos de como usar los otros operandos en ningun lado... ???

Probablemente sea porque la mayoría de los que programan ni siquiera saben que están disponibles para su uso.

Como se pueden usar y donde los "operators":

>> Right Shitf (val=flags >>1)..................que sera esto ???  :shock:

>>=3 Right Shitf, set equal (flags>>=3)..................por ahora chino "cantones) !!!  :shock:

Y asi unos cuantos mas !!!

Nunca las usé pero por lo que sé(me parece que lo correcto es "Shift") sirven para rotar variables.
Su función debe ser muy similar a las RLF y RRF, pero la diferencia radica en que estas instrucciones se aplican a variables que no pertenecen a la memoria del PIC. Sino que se aplican sobre variables utilizadas durante el proceso de ensamblado del archivo .hex (como por ejemplo, la ya famosa variable "i").

Estoy tratando de leer algo de BASIC, por la similitud de estos operandos y ver si se me pueden aclarar un poco estos conceptos...Pero todo me resulta empirico...lo escribo en el ensamblador y veo que hacen, asi me paso horas...

Conseguite algun compilador demo de PBP y fijate cuando compilas el archivo el código asm que genera. Por ahí te traiga nuevas dudas, pero te resuelva muchas otras.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Sera ASM ???
« Respuesta #52 en: 15 de Abril de 2007, 08:05:42 »
Y si, el tipo es cabeza dura nomas !!! Pero hasta que no me cierran las cosas, ando a los golpes !!!

Finalmente pude comprerder el concepto del significado de una declaracion de "RAM locations"...

Ahora lo que creo, es que Yo, te volvi loco a vos BRUNO  :D...juro que no fue mi intencion !!!

Entiendo lo que decis que hace el MPSAM, de reemplazar el nombre de un registro declarado, por una posicion de RAM...pero mi duda se generaba, cuando asociaba al registro, con los valores que pudiera cargarle (sino no servirian para nada, es decir serian como constantes...)

Hice varios ensayos con los simuladores de MPLAB, y tanto en las versiones viejas (5.0) como en las mas recientes (7.50) obtuve los resultados, que esperaban y cierran con mis conceptos...

Para poder interpretar todo esto, tome tu propio ejemplo y ensaye sobre el...ahi aparecio mi respuesta...Los registros se pueden efectivamente, y como Yo creia, cargar con cualquier valor (eso les da algun motivo de servicio, sino, como digo antes, no sirven para nada...serian constantes !!!  :D)

Ej: sobre lo que yo mismo expuse...

MOVLW   ((4 / 2) * (2 / 2 + 4))
MOVWF   AUXA                          ;aca el reg AUXA toma el valor de .10 (lo que parece esperable y/o correcto...)

Entonces es valido decir, que el registro AUXA, que se encuentra mapeado en la posicion 0x0E (hex) de la memoria RAM (porque yo asi lo declare...) tiene cargado el valor 10 (decimal)...

La respuesta me la dio el REGISTRO DE TRABAJO, es gracias a el, que yo puedo cargar a los registros con los valores que desee...y fijate que sino hubiera prestado atencion debida a tu ejemplo, hubiera seguido con la misma confusion...ya que me decis, que:

   MOVLW   ((4 / 2) * (2 / 2 + 4))   ;esto es para probar que hacen esos benditos operandos
   MOVWF   AUXA                          ;aca el reg AUXA toma el valor de .10 (lo que parece esperable y/o correcto...)
   BCF   STATUS,C
   MOVF   AUXA,W
   ADDLW   1 + 2
   MOVWF   AUXA                          ;es decir el valor de posicion 0E mas 3 = 17

Y esto esta mal, BRUNO...porque cuando moves el AUXA al W (este vale 10), independientemente de que se halle en posicion 0X0E de la RAM (eso es otra cuestion)...entonces ahora W = 10 +1+2 osea 13 y no 17...que era lo que queria...(corregime si me equivoco, por favor !!!)

A mi me daba 17, porque yo hacia:

   MOVLW   ((4 / 2) * (2 / 2 + 4))
   MOVWF   AUXA                          ;aca el reg AUXA toma el valor de .10 (lo que parece esperable y/o correcto...)
   BCF   STATUS,C
   MOVLW   (AUXA + 1 + 2)            ;aca como cargo literales, W si apunta a 0X0E + 1 + 2 =  17
   MOVWF   AUXA                          ;es decir el valor de posicion 0E mas 3 = 17

Porque no pasé el valor previo de AUXA (= 10) a W...entonces ahi si hace lo que decis, reemplaza a AUXA por su posicion de memoria RAM (0X0E) y le suma 3 = 17...

No se si lo explique bien, pero finalmente lo entiendo...a mi me estaba faltando la instruccion MOVLF para solucionarme todo...ahi lo hubiera entendido de primera...voy a mandar una queja a Microchip, esto es una barbaridad !!!  :D

Te agradezco el valiosisimo aporte, ya que gracias a el, pude salir de esta maraña...lo que no quiere decir que me desdiga, inmediatamente, ya que todo esto, lo digo a riesgo de equivocarme...pero me cierra bastante mejor de esta forma...Espero que el resto de los foristas, puedan sacar esto en claro...estoy como siempre receptivo a comentarios o acotaciones y/o correciones que deban hacerse, para no confundir a nadie !!!

Tambien me parecio interesante poder usar la posicion address del registro, como valor conocido para otras necesidades de programa...

POR EJ:

movlw     auxa+auxa
movwf     auxa

Aca cargo a AUXA con 0X0E+0x0E = 0x1C

O BIEN:

movlw     porta+portb
movwf     auxa

Aca lo cargue con 0x05+0x06 = 0x0B

En fin...asi con todas las variables que quiera y conozca...voy a probar con los BITS de c/registro a ver que pasa...despues te cuento !!!

SALUDOS y gracias por leer !!! :-) :-) :-)

______________________________
"Justo a mi, me toco ser Yo" QUINO

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Sera ASM ???
« Respuesta #53 en: 15 de Abril de 2007, 14:50:44 »
Hola. Si efectivamente estaba equivocado...Perdona. Ando a las corridas y no siempre lucido.
Efectivamente, W exíste ya que es imprescindible para poder cargar a los registros con valores o bien interactuar entre dos registros.

Espero que me comentes nuevas experiencias.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Sera ASM ???
« Respuesta #54 en: 15 de Abril de 2007, 18:15:21 »
Gracias BRUNO, esto era lo que venia preguntando desde un principio (entre otras cosas)...ahora viste porque me considero un autodidacto, seguramente esto se explica en el colegio o en la universidad o donde sea que se estudie el manejo de este lenguaje...Yo me tengo que romper el "coco" y hacer mis propias experiencias para darme cuenta de las cosas...valoro enormemente tu colaboracion para lograrlo...Esta cuestion siempre me ha sido criticada por mis amigos, ya que pareceria que siempre estoy reinventando la rueda...

Con el paso de los dias, estoy incorporando nuevas herramientas y conocimientos...mis primeras conclusiones, son que el micro, me va a resultar util, como parte de futuros proyectos, pero nunca como parte fundamental de los mismos...mi vision es que, es una herramienta perfecta para manejar un monton de cuestiones logicas (digitales), lo que me evitara el uso de electronica discreta...esta semana comienzo entonces con algunas ideas, para "versatilizar" algunos modulos de control (que se usan para reconstruccion de imagenes)...

Todavia no se donde podre usar alguna vez una division por 4,5 o por 32 o por 3,8 o una SQR o lo que sea...pero seguro en algun lado se usan...digo esto ultimo, porque, he leido que los estudiantes aprenden sobre esos fundamentos, de divisiones o calculos...En ASM, todo me parece mas claro, mas directo con la electronica...por eso alguna vez comentaba la increible asociacion que se hace entre la ing. electronica y la abstraccion que logran los programadores, para poder aunar recursos interdisciplinarios...Divages, solamente, BRUNO !!!

Esto no implica, que no siga con algunas dudas...supongo algunas se iran despejando con el tiempo y otras habra que preguntar, nomas...espero que nadie se moleste...SALUDOS !!!

PDA: Aca esta la MACRO (instruccion que les pedi a MICROCHIP que incluyan en las 35...se vienen las 36 ???  :D )

MOVLF   MACRO   VALOR, REGISTRO
   MOVLW   VALOR
   MOVWF   REGISTRO
   ENDM

movlf     124,auxa

_____________________________
"Justo a mi, me toco ser Yo" QUINO
« Última modificación: 15 de Abril de 2007, 18:33:24 por Resistencio »