Ensamblador en línea para arquitecturas Thumb2¶
Este documento asume cierta familiaridad con la programación en lenguaje ensamblador. Para una descripción concisa del conjunto de instrucciones consulte la ARM Thumb-2 Instruction Set Quick Reference Card en References más abajo. El ensamblador en línea admite un subconjunto del conjunto de instrucciones ARM Thumb-2 descrito aquí. La sintaxis intenta ser lo más cercana posible a la definida por ARM, convertida en llamadas a funciones de Python.
Las instrucciones operan sobre datos enteros con signo de 32 bits excepto donde se indique lo contrario. La mayoría de las instrucciones admitidas operan únicamente sobre los registros R0-R7: donde se admite R8-R15 se indica. Los registros R8-R12 deben restaurarse a su valor inicial antes de regresar de una función. Los registros R13-R15 constituyen el registro de enlace (Link Register), el puntero de pila (Stack Pointer) y el contador de programa (Program Counter), respectivamente.
Convenciones del documento¶
Cuando es posible, el comportamiento de cada instrucción se describe en Python, por ejemplo
add(Rd, Rn, Rm)
Rd = Rn + Rm
Esto permite demostrar el efecto de las instrucciones en Python. En ciertos casos esto es imposible porque Python no admite conceptos como la indirección. El pseudocódigo empleado en tales casos se describe en la página correspondiente.
Categorías de instrucciones¶
Las siguientes secciones detallan el subconjunto del conjunto de instrucciones ARM Thumb-2 admitido por MicroPython.
- 1. Instrucciones de movimiento de registros
- 2. Cargar registro desde memoria
- 3. Almacenar registro en memoria
- 4. Instrucciones lógicas y de bits
- 5. Instrucciones aritméticas
- 6. Instrucciones de comparación
- 7. Instrucciones de bifurcación
- 8. Apilar y desapilar en la pila
- 9. Instrucciones diversas
- 10. Instrucciones de punto flotante
- 11. Directivas del ensamblador
Ejemplos de uso¶
Estas secciones proporcionan más ejemplos de código y sugerencias sobre el uso del ensamblador.