fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Ensamblador vs Otro...
 
Avisos
Vaciar todo

Ensamblador vs Otros (No prentendo abrir una discusión épica

5 Respuestas
4 Usuarios
0 Reactions
6,619 Visitas
_g2_
Respuestas: 155
 G2
Topic starter
(@_g2_)
Estimable Member
Registrado: hace 19 años

Más de una vez me he encontrado discusiones de páginas y páginas sobre si hacer ciertas cosas 'a pelo' o 'con ayuda'. Cosas tales como si programas webs con Dreamwaever o a palo (me decanto por a palo en este caso), si hacer ciertas cosas en VBasic o C y así un largo etc, mi respuesta a estas preguntas sule ser 'depende de que y para que'.

Mi pregunta viene a ser parecida. Yo hasta ahora siempre he programado los PICS con ensamblador y me preguntaba si debía dar el salto o no. Las dudas que me surgen son:

1) Merece la pena
2) Se gana mucho en tiempo de desarrollo y claridad
3) Se piede mucho en eficiencia en la compilacion
4) Existen compiladores buenos y libres

Repito que no pretendo abrir una discusión sobre el tema, si no más bien, un poco de horientación...

Gracias

Responder
4 respuestas
cibernes
Respuestas: 4
(@cibernes)
New Member
Registrado: hace 19 años

Hola,
Como tú dices "depende".
Yo he desarrollado mucho SW en ensamblador y en C y todo depende de qué herramientas tengas. Todos sabemos que los compiladores de C "gratuitos" suelen ser en el mejor de los caso mediocres, porque el bueno cuesta dinero, yo recientemente he comprado un compilador C para Pics por 200€ ( todos sabemos lo que cuesta uno "profesional" ) y estoy muy contento con él, genera código bastante eficiente ( no ocupa el doble que en ensamblador ) y , si tienes un buen nivel de C puedes hacer todo lo que necesites, en la mitad de tiempo, pero tambien hay veces que en ensamblador acabas antes. En el Robot que estoy desarrando ( CS-EMA ) el control de sensores está implementado con un 18F4431 y solo tengo ocupado el 30% de programa ( todo en C ) y te aseguro que el programa no son "cuatro cosillas".

Responder
ranganok
Respuestas: 3875
(@ranganok)
Ardero
Registrado: hace 19 años

La verdad...

Primero hazlo en C y luego revisas el código en Ensamblador. Si tienes mucha mano con Ensamblador puedes fabricarte "funciones" en este lenguaje que únicamente has de incluir.

Para programas cortos yo utilizo directamente ASM, para largos y complicados lo que te he dicho (primero en C y luego en ASM).

S2

Ranganok Schahzaman

Responder
darthagus
Respuestas: 110
(@darthagus)
Ardero
Registrado: hace 19 años

Yo también soy de la opinión del "depende". Está claro que disponemos de muchas herramientas para programar micros (quiza unas mas asequibles que otras) pero al fin y al cabo somo nosotros quienes hacemos la programación definitiva (nadie mas que nosotros sabemos que es exactamente lo que queremos que haga el micro).

Seria casi tan descabellado programar un pic12f en C como hacerlo en ensambladro puro y duro un pic dsf30f. ¿Que quiero decir con esto? que tenemos que valorar los recursos que disponemos. En primer lugar la tan restringida y necesitada memoria de programa, y claro, por otro lado el volumen de código hex que genere el compilador.

Como dice Ranganok, si tu nivel de ensamblador es alto, una vez el compilador te haya dado el hex, revisalo y reduce lo que creas oportuno, la cuestión es que el trabajo "gordo" lo ha hecho el compilador dandote mas abstracción del hardware.

Como ejemplo se me ocurre que quieras implementar una red CAN con pics 18f; es muy probable que las comunicaciones sean mas faciles de programar en C, pero el control de hardware periferico en ensamblador. Teniendo las 2 herramientas en tu mano, puedes hacer uso de las 2.

Saludos.

Responder
_g2_
Respuestas: 155
 G2
Topic starter
(@_g2_)
Estimable Member
Registrado: hace 19 años

Al final por lo que veo me animais a que me lance al "alto nivel", y dentro de este, alguna recomendacion ... Sobre todo a nivel de compilador más que de lenguaje, porque ya puesto me da un poco igual aprende c o basic u otro, hombre tengo más base de c que de otra cosa pero no me preocupa.

Gracias por vuestras repuestas y un saludo

Responder
Compartir: