Escribir código de ensamblaje ARM

20

Después de obtener mi Raspberry Pi, decidí que quería aprender a escribir el código de ensamblaje ARM. Mi pregunta es, ¿qué necesito para comenzar? Supongo que ya hay un compilador instalado, pero no sé qué es (¿gcc quizás?). Cualquier ayuda es apreciada!

ohblahitsme
fuente
Aquí hay otro libro (gratuito) sobre el montaje ARM: yurichev.com/writings/RE_for_beginners-en.pdf
Dennis Yurichev

Respuestas:

19

Depende de cuánto ensamblador quieras escribir. Si desea escribir solo pequeños fragmentos incrustados en el código C, gcceso es lo que está buscando. Ejemplos de cómo usar la asmdirectiva en C vea la referencia asm en línea en: ARM GCC Inline Assembler Cookbook

Si, por otro lado, desea escribir más que solo fragmentos pequeños, entonces será mejor que use un ensamblador completo. Este estará disponible como cualquiera as, gaso ambos (alias).

Y finalmente necesitará aprender un poco sobre el conjunto de instrucciones ARM. Hay una referencia útil en: ARM1176JZF-S Technical Reference Manual .

Nota: recuerde que RPi solo admite instrucciones armv6, así que no intente usar nada de armv7

¡¡Buena suerte!! :)

Maria Zverina
fuente
4

Comencé mi aventura con el código de ensamblaje ARM no hace mucho tiempo y aquí están mis recursos:

  • La Universidad de Cambridge publicó un conjunto de tutoriales muy decente aquí: Baking Pi . Incluye una plantilla para su propio sistema operativo, ejemplos completos de código para cada tutorial y todas las instrucciones sobre cómo construir y ejecutar su código.
  • Además, este libro considerable debe cubrir todas las bases: Guía del desarrollador del sistema ARM .
Piotr Justyna
fuente
3

Aunque estoy bastante cómodo con la interfaz de línea de comandos, no pude resistir la conveniencia de la GUI. Hace un tiempo, descubrí que podía usar CodeBlocks IDE para desarrollar programas de lenguaje ensamblador ARM en una Raspberry Pi. Así que escribí un tutorial y lo agregué al tutorial de programación de ensamblaje de Raspberry Pi que escribí para el sitio web del libro de ensamblaje de Mazidi ARM:

http://www.microdigitaled.com/ARM/ARM_ASM_books.htm

En el sitio web, haga clic en el enlace "Programación de ensamblaje ARM usando la interfaz gráfica de usuario de Raspberry Pi".

Espero que esto ayude.

Schen
fuente
1

GCC se instala por defecto. Si es nuevo en Raspberry Pi, le recomiendo que busque un lenguaje de programación más fácil que el ensamblaje ARM. No hay ningún IDE para ensamblar, por lo que tendrá que usar un editor de texto y ensamblarlo a través de la terminal. Recomiendo Gedit para facilitar su uso. Aunque para obtener resaltado de sintaxis para el ensamblaje tuve que ir a github, específicamente la página de shinyquagsire23. Es muy bonito. En cuanto a ayuda El mejor recurso que he encontrado es "Lenguaje ensamblador Raspberry Pi: Principiantes Raspbian" de Bruce Smith. Lo puedes encontrar en Amazon. Explica el ensamblaje de una de las formas más claras y simples que he encontrado.

Ronin oscuro
fuente
1

Aprende con ejemplos ejecutables

Estoy trabajando en: https://github.com/cirosantilli/arm-assembly-cheat

caracteristicas:

  • exactamente el mismo ensamblaje se puede ejecutar en un host Linux con el modo de usuario QEMU, por lo que puede probar cosas más rápido en su host antes de volverse nativo en Pi
  • cubre tanto ARMv7 como ARMv8
  • buena configuración GDB lista para usar, tanto en host como nativo
  • tiene afirmaciones que muestran el número de la línea de ensamblaje donde fallaron las cosas
  • utiliza la biblioteca estándar de C para IO, lo que hace que sea OS portátil en teoría, y permite reutilizar fácilmente objetos como printfymemcpy
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
fuente