C vs ASM
| #31 |
| #32 |
|
mabauti
|
Lo que genaran es codigo binario (codigo maquina) , el ensambaldor es un nivel arriba del codigo maquina
|
|||||||||||
|
|
||||||||||||
| #33 |
|
Chico3001
|
mabauti escribió: Lo que genaran es codigo binario (codigo maquina) , el ensambaldor es un nivel arriba del codigo maquina Efectivamente... pero el archivo lst ya contiene los nmemonicos equivalentes junto con el codigo maquina binario y ademas vienen agrupados para que indiquen que instruccion en C se intento traducir... |
|||||||||||
|
|
||||||||||||
| #34 |
|
eidtech
|
mabauti escribió: Lo que genaran es codigo binario (codigo maquina) , el ensambaldor es un nivel arriba del codigo maquina En realidad lo que genera un compilador, es un asm... de ahi se lo pasa al "ensamblador" y luego al linker... Una de las principales tareas del compilador es generar un muy buen asm, lo mas optimo posible. |
|||||||||||
|
|
||||||||||||
| #35 |
|
LaloMon
|
como genero el archivo .asm desde el compilador de borland C o cualquier otro compilador... lo que yo ucupo es el archivo .asm para meterlo a otro programa...
Me pueden explicar porfa |
|||||||||||
|
|
||||||||||||
| #36 |
|
_Eduardo_
|
LaloMon escribió: como genero el archivo .asm desde el compilador de borland C... ? ? ? Llamando al compilador sin argumentos te devuelve un resumen de las opciones de compilacion. Para generar una salida en assembler es -S Ej: BCC32 -S programa.cpp (lo mismo para 16bits o prog.c) |
|||||||||||
|
|
||||||||||||
| #37 |
|
426ivan
|
En el CCS podés poner
#asm y aqui todas las instrucciones en ASM que quieras, finalizando con: #endasm y listo. Así se pueden mezclar ambos mundos sin problemas. No querrás realizar una multiplicación de por ejemplo: 8*9 en assembler de pic. En lo haces muy fácil y sin problemas, y para manejar los ADs como te dicen más arriba basta con utilizar el ASM. Saludos! |
|||||||||||
|
|
||||||||||||
| #38 |
|
piratex
|
Lamentablemente el C tiene esas falencias de compilar un codigo NO muy optimo en comparacion con el generado ensamblando.
Pero la rapidez y la facilidad con la que se hacen complicados programas en C me han hecho optar por el. el CCS (compilador de C para micros) Full.... busquenlo en mi web.. |
|||||||||||
|
|
||||||||||||
| #39 |
|
Javier Rambaldo
|
Estoy de acuerdo con piratex (...que nombre!...), y a veces la compilación no solo es mala en optimización, sino que errada.
No se si el CCS tiene errores, pero el compilador MikroC si los tiene! Por ejemplo, este simple código: if(cont++ >10) { cont = 0; } Si ven el ASM que genera el mikroC, nunca se incrementa el contador! Por eso no hay como el assembler, que será mas lento y tedioso pero es eficiente y hace lo que yo quiero. |
|||||||||||
|
|
||||||||||||
| #40 Hay que leer y mucho. |
|
fitocondria
|
Claro todo esto para arquitectura de 8 bits.
Yo programo en C++, y en C para pc. Pero desde que comence a hacerlo para microcontroladores, siempre quede decepcionado. Y para que al final no sean compatibles los C de los fabricantes de compiladores de C. No he entrado ya últimamente a postear porque me atore en un problema, en el cual la sintaxis y la logica estaban bien de acuerdo a las reglas de C. Sin embargo no hacia su trabajo la madre esa. Lo desensamble solo para corroborrar que el buey no estaba manejando el apuntador como un apuntador sino como una variable más común que corriente, y leyendo durante una semana en los manuales en un ejemplo nada que ver con apuntadores aparecio la respuesta, VOLATILE era la solución a mis plegarias. Sin la cual el compilador tomaba el contenido de mi apuntador y lo pasaba a un registro y trabajaba con ese registro no con la dirección de ahi en lo sucesivo. Que poca. Y cuando utilizo volatile en la declaración de mi apuntador, asunto resuelto. Que poca. Casi me revolcaba y me salía espuma por la boca, sino fuera por la felicidad de que el programa estaba funcionando. En conclusión, quieres C standard en tu microcontrolador, utiliza un micro con mucha memoria o usas c para chingaderillas(por chingaderillas me refiero a cosas que haría uno en una pc). por ejemplo si utlizas printf ya se indigesta el microcontrolador, a menos que sean versiones recortadas. Prefiero mezclar C y ensamblador en proyectos grandes que solo utilizar C. C es bueno para unas cosas pero para otras es mejor utilizar ensamblador, y si hablamos que se les esta ocurriendo meter ahora java (jajajajajajajaja) tiene * en el cerebro, y lo digo por los celulares que son cada vez más lentos con la porque... hay otras cosas mejores que usar y disponibles. Claro todo esto para arquitectura de 8 bits. |
|||||||||||
|
|
||||||||||||
|
| Otros temas de interés | |
|---|---|
| Destacado: Programador de microcontoladores PIC Puerto USB | |
| Programar un PIC para controlar un TFT | |
| Programar el PIC16C765 por el puerto serial y el USB | |
| Programar un lm35 en visual basic por el puerto paralelo | |
| programar en assembler | |
| Foros de Electronica |
| ||
Cuestiones Elementales de Electrónica ||
Fuentes de alimentacion ||
Circuitos de radio ||
Diseño de circuitos en general || || Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión || || Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos || |
Contacto |
Acerca de |
Ayuda |
Normas de la Comunidad |
Privacidad |
Mapa de los foros
© Foros de Electrónica - Comunidad Internacional de Electrónicos
© Foros de Electrónica - Comunidad Internacional de Electrónicos

