¿Cuál es el mejor recurso para aprender el lenguaje ensamblador para el microcontrolador PIC [cerrada]

StackOverflow https://stackoverflow.com/questions/1473454

Pregunta

Voy a empezar a trabajar en un proyecto en el que necesita tener una idea bastante acertada de lenguaje ensamblador para el microcontrolador PIC de. Estoy muy familiarizado con C / C ++, así que sé cómo codificar en su mayor parte, y lo he hecho muchos proyectos para el PIC ya por lo que entiendo la arquitectura, pero he hecho toda la programación para que en 'C'.

¿Hay un buen libro o página web que hace un buen trabajo explicando lo que todos los comandos de la Asamblea significan y cómo hacer tareas bastante simples (parpadeo del LED, matemáticas básicas, etc ...) para el microcontrolador PIC?

Edit: El propósito principal de este post es para solicitar recursos para el aprendizaje de la Asamblea, no debatir los méritos de C vs Asamblea en el PIC, o si el PIC es un microcontrolador 'bueno' para su uso. Estoy usando un microcontrolador PIC18 si hay alguna diferencia.

¿Fue útil?

Solución

Me gustaría probar esto: de Pic Tutorial

Otros consejos

No es más que una arquitectura PIC, con un número significativamente diferentes conjuntos de instrucciones. Microchip no tienen la consistencia arquitectónica de Atmel AVR por ejemplo. Así que hay que especificar lo que está utilizando -. PIC12, 16, 24, 32, por ejemplo,

Así que en primer lugar me gustaría sugerir evitando ensamblador PIC sobre la base de que lo que aprendes en un PIC12 decir, que no puede ser muy aplicable a un PIC24. En segundo lugar me gustaría evitar el uso de un PIC en absoluto si lo que podía como desarrollador de software -. Aunque admito Hay otras consideraciones, y es posible que no tienen otra opción

Lo que usted puede tener una opción más, no está usando ensamblador. Mientras que los PICs de gama más baja no son quizás el más adecuado para la generación de código C, que es el problema de la escritora compilador; todavía es más rentable en términos de tiempo de desarrollo para utilizar C siempre que sea posible. Por otra parte para los productos de alto volumen, si te puedes adaptar el código en una parte más pequeña usando ensamblador, que puede ser un factor. Decidir que necesita el ensamblador antes de haber probado una solución C es a menudo una 'optimización prematura'. Incluso si la aplicación falla C tamaño o limitaciones de tiempo, sólo puede llamar a un prototipo, y recodificar debido a restricciones. Haciendo que todavía puede ser más rápido que comenzar desde cero codificación en ensamblador y luchando con el diseño y conjunto de instrucciones al mismo tiempo. Decirle a su jefe que usted prototipos de que en C, a continuación, cuando se cumpla con los requisitos, nadie va a querer gastar dinero para una nueva codificación que es donde se encuentra ahora el código ensamblador no portátil, imposible de mantener.

Por último, para responder a su pregunta, suponiendo que necesita para realizar su trabajo de forma rápida y eficiente, utilizar los ejemplos de Microchip y app-notas tanto como sea posible, y familiarizarse con el conjunto de instrucciones de la referencia del conjunto de instrucciones fabricantes. El conjunto de instrucciones para las piezas de gama baja no es muy grande. Para el trabajo del día a día me gusta usar una "tarjeta de referencia Conjunto de instrucciones" como una ayuda memoria - que resume todos los detalles esenciales de cada instrucción, por lo general en un par de páginas - imprimir a doble cara y lamínelo! ;). Aquí está una PIC16 ejemplo

Puede ser que sea absolutamente una respuesta tardía, pero que podría beneficiarse de este curso de laboratorio escrito principalmente para el aprendizaje de la Asamblea PIC a través de aplicaciones.

Comprobar: http://embedded-ju.ucoz.com/

Comprobar la pestaña experimentos, que incluye:

Experimento 0 - (Introducción a MPLAB)

Experimento 1 - (Introducción a la Asamblea PIC conjunto de instrucciones)

Experimento 2 - (Más sobre del conjunto de instrucciones y técnicas de programación modular)

Experimento 3 - (Sistema Básico de Análisis y Diseño)
   3.1. Guía de Hardware I

Experimento 4 - (LCD - HD44780)

Experimento 5 - (teclado)

Experimento 6 - (Usando HI-TECH C Compiler en MPLAB)    6.1. Programación del PIC con la Guía CIE-2.

Experimento 7 - (Timers (Timer0 y Timer2))

Experimento 8 - (USART)

Experimento 9 - (Software PWM y A / D)


Se basa en la serie PIC 16, más notablemente, 16F84A, 16F877A y 16F917 .. los ejemplos están completamente comentados, y los experimentos explican completamente.

Soy un creyente en escribir un desensamblador. Comience con un programa muy simple uno o dos línea que carga un registro con una constante tal vez (hay que leer un tutorial o algo que aprender ese paso). Ensamblarlo. Guarde el archivo binario en un formato que es capaz o dispuesto a escribir un programa para leer (hex Intel tal vez, o duende que si apoyan).

Escribir un programa para leer el archivo binario y extraer el programa luego tomar esos bytes y escribir un desensamblador (incluso si el proveedor tiene un desensamblador aún debe escribir uno).

Ahora comenzar la iteración del proceso, aprender una nueva instrucción o una nueva forma de utilizar esa instrucción, una instrucción a la vez. Escribir código para desmontar esa instrucción o una opción. Trate de escribir en ensamblador para manipular cada uno de los bits en la instrucción.

Por el momento de llegar a través del conjunto de instrucciones que usted sabrá el conjunto de instrucciones mejor que la mayoría de las personas que lo utilizan todos los días, usted sabrá cómo escribir ensamblador para cada una de las opciones para cada uno de los códigos de operación, también se puede aprender ¿Por qué esta instrucción sólo puede abordar N bytes desde su ubicación y otros pueden acceder a cualquier cosa, o que la instrucción sólo puede utilizar un bit N inmediata y otros pueden utilizar cualquier valor. Ese tipo de cosas.

He utilizado este proceso muchas veces y aprendido muchas conjuntos de instrucciones, tu caso es distinto. Después de los primeros dos y tres, el proceso anterior, solo podrán tomar una tarde para completar.

EDIT:

El objetivo aquí es la educación no es el próximo gran proyecto en Sourceforge. La salida puede ser tan feo o incompleta como quiera que es el único que va a leer.

Nota: Un desensamblador genérico para juegos de instrucciones de longitud variable puede ser algo difícil, no desea desmontar linealmente el binario en el que caso de que quiera seguir todas las rutas de ejecución. Me gustaría evitarlo. Tomando simples programas que se ejecutan tanto linealmente montaje continuación desmontaje no es difícil incluso en un conjunto de instrucciones de longitud variable. Usted puede aprender mucho acerca de un conjunto de instrucciones por el desmontaje y el examen de la salida de un compilador de C (o cualquier otro lenguaje de alto nivel), si el compilador no tiene una opción de salida del ensamblador o no tiene un desensamblador no puede conseguir para tomar ventaja de este (a menos que se trata de un conjunto de instrucciones de longitud fija).

También tenga en cuenta una vez que aprender ensamblador para un procesador, el segundo es mucho más fácil, y así sucesivamente. Las cosas que hay que aprender de uno a otro a menudo se vuelven lo grande que puede ser este salto, ¿cuáles son las normas sobre immediates, el direccionamiento indirecto, básicamente todas las cosas que están directamente relacionados con el examen de los códigos de operación. Se puede aprender sin tener en cuenta los códigos de operación, pero hay que confiar en los mensajes de error de documentación o ensamblador de ser de alta calidad.

El piclist:. http://piclist.com/

En particular,

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top