Autor Tema: Algunas directivas útiles en ASM  (Leído 10150 veces)

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

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Algunas directivas útiles en ASM
« Respuesta #15 en: 09 de Enero de 2010, 12:23:00 »
No, pero podes generarla. Todo puede generarse dinamicamente...
"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 mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Algunas directivas útiles en ASM
« Respuesta #16 en: 09 de Enero de 2010, 12:55:03 »
.


Si todas las variables AUX0, AUX1, etc. estuvieran una después de otra, podrías hacer...

Código: ASM
  1. VARIABLE        AUX=0x20, CONT=0, MAXIMO=4      ; Dirección de AUX0
  2.  
  3. ...
  4.  
  5.         WHILE   CONT < MAXIMO
  6.  
  7.         CLRF    AUX
  8.         AUX=AUX+1
  9.         CONT=CONT+1
  10.  
  11.         ENDW

Por supuesto que para 4 variables queda más cómodo poner 4 CLRF, pero tal vez te sirva si querés dificultar un poco la lectura de tu código  ;-)


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

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Algunas directivas útiles en ASM
« Respuesta #17 en: 09 de Enero de 2010, 13:22:58 »
Código: [Seleccionar]
Limpiar macro memInicial,cantidad
variable contador
contador=cantidad

ERRORLEVEL -207

while(contador>0)
                                        clrf memInicial
                                        memInicial++
                                        contador--
endw

ERRORLEVEL +207

endm

Limpiar AUX,4


« Última modificación: 09 de Enero de 2010, 13:26:44 por BrunoF »
"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 BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Algunas directivas útiles en ASM
« Respuesta #18 en: 09 de Enero de 2010, 13:31:20 »
Mmmm ahora que vuelvo a revisar lo que querés, no creo que se pueda. Creo que hay serias limitaciones.

No se permite pasar una cadena como "CLRF" a una MACRO.

Por supuesto que podriamos generar un conjunto de definiciones y asignarle un valor a CLRFx (CLRF no podria ser utilizado porque es una palabra reservada del lenguaje) y luego si pasar este valor como CLRFx a la MACRO

Igualmente, si quieres borrar muchas posiciones consecutivas, lo mejor es usar direccionamento indirecto. Lo optimo seria armar una macro que segun la cantidad de posiciones a limpiar, decida si conviene hacer CRLF a una por una o usar el direccionamiento indirecto para limpiarlas. Todo depende de la ROM y velocidad que se quiera rescatar.
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 groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Algunas directivas útiles en ASM
« Respuesta #19 en: 09 de Enero de 2010, 15:08:35 »
gracias por la explicacion.pero mi intencion era poner cuanto menos codigo mejor.veo que para 4 instruciones no interesa realizar un direcionamiento indirecto
Montando mi primera impresora 3D (Raprep Prusa i3)


 

anything