Scrittura del codice assembly ARM


20

Dopo aver ottenuto il mio Raspberry Pi, ho deciso che volevo imparare a scrivere il codice assembly ARM. La mia domanda è: cosa devo fare per iniziare? Presumo che sia già installato un compilatore ma non so cosa sia (gcc forse?). Qualsiasi aiuto è apprezzato!


Ecco un altro libro (gratuito) sull'assemblaggio ARM: yurichev.com/writings/RE_for_beginners-en.pdf
Dennis Yurichev

Risposte:


19

Dipende dalla quantità di assemblatore che si desidera scrivere. Se vuoi scrivere solo piccoli frammenti incorporati nel codice C, gccè proprio quello che stai cercando. Esempi di come utilizzare la asmdirettiva in C si vedano i riferimenti asm inline in: Cookbook per assemblatori in linea ARM GCC

Se d'altra parte vuoi scrivere più di piccoli frammenti di quanto non sia meglio usare un assemblatore completo. Questo sarà disponibile come sia as, gaso entrambi (alias).

E infine dovrai imparare un po 'sul set di istruzioni ARM. Vi è un comodo riferimento a: ARM1176JZF-S Manuale di riferimento tecnico .

NB Ricorda che RPi supporta solo le istruzioni di armv6, quindi non provare a usare nulla di armv7

In bocca al lupo!! :)


4

Ho iniziato la mia avventura con il codice assembly ARM non molto tempo fa e qui sono le mie risorse:

  • L'Università di Cambridge ha pubblicato una serie di tutorial molto decenti qui: Baking Pi . Include un modello per il proprio sistema operativo, esempi di codice completi per ogni esercitazione e tutte le istruzioni su come creare ed eseguire il codice.
  • Inoltre, questo libro pesante dovrebbe coprire tutte le basi: Guida per gli sviluppatori del sistema ARM .

3

Anche se sono abbastanza a mio agio con l'interfaccia della riga di comando, non ho potuto resistere alla praticità della GUI. Qualche tempo fa, ho scoperto che avrei potuto usare CodeBlocks IDE per sviluppare programmi di linguaggio assembly di ARM in un Raspberry Pi. Quindi ho scritto un tutorial e l'ho aggiunto al tutorial sulla programmazione dell'assemblaggio Raspberry Pi che ho scritto per il sito web del libro Mazidi ARM Assembly:

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

Nel sito Web, fare clic sul collegamento "Programmazione assembly ARM mediante Raspberry Pi GUI".

Spero che sia di aiuto.


1

GCC è installato per impostazione predefinita. Se sei nuovo di Raspberry Pi, ti consiglio di consultare un linguaggio di programmazione più semplice rispetto a ARM assembly. Non ci sono IDE per l'assemblaggio, quindi dovrai usare un editor di testo e assemblarlo tramite il terminale. Consiglio Gedit per facilità d'uso. Sebbene per ottenere l'evidenziazione della sintassi per l'assemblaggio, ho dovuto andare su github, in particolare sulla pagina di shinyquagsire23. È molto carino. Per quanto riguarda l'aiuto La miglior risorsa che ho trovato è "Raspberry Pi Assembly Language: Raspbian Beginners" di Bruce Smith. Lo puoi trovare su Amazon. Spiega l'assemblaggio in uno dei modi più chiari e semplici che ho trovato.


1

Impara con esempi eseguibili

Sto lavorando su: https://github.com/cirosantilli/arm-assembly-cheat

Caratteristiche:

  • lo stesso assembly esatto può essere eseguito su un host Linux con modalità utente QEMU, quindi puoi provare cose più velocemente sul tuo host prima di diventare nativo sul Pi
  • copre sia ARMv7 che ARMv8
  • buona configurazione GDB pronta all'uso, sia su host che nativa
  • ha asserzioni che mostrano il numero della catena di montaggio in cui le cose sono fallite
  • utilizza la libreria standard C per IO, che in teoria lo rende portatile e consente di riutilizzare facilmente oggetti come printfememcpy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.