¿Hay una convención de códigos para el ensamblaje (principalmente PIC)?¿Hay una convención de código para el ensamblaje (principalmente PIC)?
Respuesta
yo era capaz de encontrar el Assembly Language Style Guide(PDF) que le pueden interesar.
Este es el estilo general, pero los comentarios son bastante pésimos (de muy bajo nivel o imprecisos). – starblue
Es un buen documento para comenzar. Pero es como se comentó anteriormente, arriba –
He hecho la misma pregunta aquí: http://electronics.stackexchange.com/questions/7468/are-herehere-any-code-conventions-for-assembly y tal vez usted gustaría responder allí también. –
no creo que haya nada formal, pero leer las muestras de codificación en su sitio web le da una idea de los modismos habituales. solo tenga en cuenta que hay muchas 'contribuciones' de muchos aficionados diferentes, y que pueden no ser tan agradables.
también verifica otros proyectos, la mayoría tendrá código feo; pero encontrarás una o dos gemas.
nunca programé en PIC, pero me gustó leer el código. Recuerdo vagamente un "sistema operativo en tiempo real" con un flujo de ejecución realmente agradable y limpio. No recuerdo cuán consistente era el estilo de codificación, pero empezaría allí.
que es mejor leer la mayoría de ellos y cuando es tan fácil como la prosa, a continuación, encontrará su estilo
Al escribir montaje, que es bastante útil y no del todo por la borda para comentario a cada línea
Solo iba a decir algo similar. Tengo una asamblea antigua de hace años con algunos comentarios, y no entiendo nada de eso. – Zifre
estoy con Jason S - utilizar un compilador de C, si es posible, incluso si al final de la incrustación de unas pocas líneas de lenguaje ensamblador en su archivo ".c" usando la palabra clave "__asm".
Si debe escribir programas completos en ensamblador para el PIC, la convención de llamada a función recomendada es PIClist: PIC Paging and PCLATH.
Realmente dependería del modelo de PIC que esté utilizando. Por ejemplo, PIC16 y PIC18 tienen muchos ejemplos de ensamblaje que se pueden encontrar fácilmente en la web.
Sin embargo, modelos como PIC24 y PIC32 están mucho más orientados hacia C. Hay muchos ejemplos de CIP en C que se pueden encontrar en el sitio web para su modelo de PIC específico. Estos modelos de PIC aún se pueden programar en ensamblaje, pero hay muy pocos ejemplos de cómo hacerlo. El mejor recurso para eso está en MPLAB en "Ayuda", revise el "Contenido de la Ayuda" de cualquier ensamblador que use su modelo PIC. Esto le mostrará algunos ejemplos, así como instrucciones sobre cómo programar en el ensamblaje PIC y realizar tareas sencillas de PIC, como definir la memoria o escribir macros.
Depende de si su programación en ensamblador o utilizando un compilador c para crear el ensamblado para usted. Si el rendimiento es importante, no use un compilador c, escriba el ensamble usted mismo.
pero, en general, las convenciones son para comentar cada línea, usar subrutinas simples con nombres de puntero significativos. hay algunas cosas que haría comentarios sobre el bloque, es decir
start: movlw 0x24 // \
movf count // put 24 into count
MyCount: decfsz count //decrement count and exit if done
goto myCount //do the loop
goto exit //count is done exit
esto es la codificación típica, la primera columna de la dirección de los punteros siguiente para el comando y se asocia VARs que suelen definir los VARs en la sección de cabecera antes de la programa real, pero eso es particular para el ensamblador que está usando. algunos no le dan la opción de puntero variable y tiene que usar una ubicación de memoria directa. Si observas el código comentado que vuelve a salir del desensamblador, se vería así.
0020 movlw 0x24
0021 movf 0x25 // 0x25 = memory address of count
0022 decfsz 0x25
0023 goto 0x0022 // loop back to 0x22 until count = 0
0024 goto 0x01FF
entonces como comentario asegúrese de grupo para el uso por código 'nop' s para compensar código para buenos números redondos como empezar a tener una dirección de 20 direcciones que salen de entre 2 y 20 clara para interrupciones y similares.Dependiendo del chip, escribo mucho código para el 12f675, así que ese es el modelo que suelo usar.
también guardan el código en subrutinas claras simples y las direcciones deben ser números redondos agradables dejando bloques de 10 o menos entre sus subrutinas iniciales, siempre puede volver atrás y comprimir su código más tarde. y siempre comente su código, no puede comentarlo lo suficiente.
También usualmente coloco mi initinage lo más cerca posible al final de la memoria, dejando el espacio máximo para ese programa real.
Espero que ayude a algunos.
- 1. PIC Función de ensamblaje llamando al
- 2. PIC (código independiente de posición)
- 3. Descompiladores hexagonales para PIC
- 4. Pila Modbus para Microchip PIC
- 5. F # Cómo compilar una cita de código para un ensamblaje
- 6. iOS código de ensamblaje
- 7. Código de ensamblaje para sin (x)
- 8. Descifrando y comprendiendo el código de ensamblaje
- 9. ¿Hay alguna convención para escribir comentarios de POD para Perl?
- 10. Mezcla de objetos PIC y no PIC en una biblioteca compartida
- 11. ¿Hay alguna convención de Clojure para nombrar funciones privadas?
- 12. Cuál es el mejor recurso para aprender Lenguaje ensamblador para el microcontrolador PIC
- 13. compilador de PIC C gratuito
- 14. ¿Hay algún programa para convertir el ensamblaje a C++?
- 15. ¿Qué hace el registro PIC (% ebx)?
- 16. ¿Existe una convención de nombres para MySQL?
- 17. Código de ensamblaje en C++
- 18. ¿Cómo modificar el ensamblaje de Erlang? ¿Hay algún recurso disponible?
- 19. ¿Hay alguna forma de insertar el código de ensamblaje en C?
- 20. HPC (principalmente en Java)
- 21. ¿Por qué gcc fuerza PIC para x64 libs compartidas?
- 22. ¿Código de ensamblaje x86 más rápido para sincronizar el acceso a una matriz?
- 23. análisis de código estático para lenguaje de ensamblaje
- 24. Uso del DLR para (principalmente) compilación de lenguaje estático
- 25. Desarrollo de código incrustado (especialmente para PIC con C18) en Visual Studio
- 26. Cómo ejecutar el código de máquina (ensamblaje de aprendizaje)
- 27. ¿El código de Perl está escrito principalmente en diseño orientado a objetos?
- 28. Pasando parámetros y valores de retorno para una subrutina en el ensamblaje
- 29. Python bracket convención
- 30. ¿Cuál es el problema con mi código de ensamblaje
No lo llamaría fuera de tema, pero mi convención de código es usar C o C++, no ensamblador. –
también de acuerdo con los comentarios. mi convención sería usar el ensamblaje como último recurso de optimización de velocidad/espacio. – kenny
Necesito reducir el precio del producto. C no es la mejor opción para mí. –