Imparare a programmare in assemblea - Risorse utili [chiuso]


10

A seguito di una discussione precedente, mi ha interessato ad imparare qualcosa sulla programmazione dell'Assemblea. Non tanto per voler programmare app utili, ma solo per avere un'idea della programmazione di basso livello per capire meglio cosa sta succedendo.

Qualcuno può consigliare libri o risorse online per i principianti?

Grazie.


Questo libro del Dr. Paul Carter era abbastanza buono per l'ASM x86.
jonescb,

Risposte:


5

Libro consigliato: The Art of Assembly Language Programming .

Mi è piaciuto anche questo sito . Bella introduzione alla programmazione degli assiemi! Ho usato questo sito come riferimento mentre studiavo per il mio corso su Microprocessori e Microcontrollori.


Eccellente grazie. Per interesse, quanto hai trovato intuitivo impararlo rispetto a un tipico linguaggio moderno? La mia storia è di 6 mesi c # (nell'industria) e più o meno nello stesso periodo C ++ (nella mia camera da letto :))
Darren Young,

1
Mi sono imbattuto nella programmazione dell'Assemblea nel mio corso (sono ancora uno studente) e, come hai detto nella tua domanda, è stato utile sapere come funzionano i sistemi integrati e tutto il resto. Tuttavia, rispetto alle lingue di alto livello (come dici tu), non l'ho trovato molto utile. Sai, non lo userò mai nel mio campo: lo sviluppo web. :)
Ykombinator,

2

Si tratta di un esercizio accademico o intendi utilizzare il linguaggio assembly che impari? Questa è roba piuttosto specializzata, in questi giorni. L'ottimizzazione del compilatore è diventata così buona che persino qualcosa come un'unità disco fisso ad alte prestazioni dovrebbe contenere circa l'1% della sua base di codice scritta in assembler. Scendendo lungo la catena alimentare a processori a 4 bit o alcuni processori a 8 bit vedrai che viene utilizzato molto più linguaggio di assemblaggio.

Se vuoi davvero provare il linguaggio assembly, scegli un processore con un buon set di istruzioni. Sono un ex dipendente ARM, quindi probabilmente sono di parte, ma ho scoperto che il set di istruzioni ARM era particolarmente facile da imparare - sono stato in grado di scrivere un efficiente filtro FIR in asm il mio terzo giorno in azienda. I partner di semiconduttori di ARM stanno spedendo circa un miliardo di core ARM al trimestre in questi giorni, quindi è abbastanza facile trovare una società che è disposta a utilizzare la tua esperienza ARM ASM.

Ci sono molte schede ARM eval disponibili per circa $ 50 per provare il tuo codice - sembra che ARM Cortex M3 sarà immensamente popolare. Utilizza il set di istruzioni Thumb2 di ARM, che è un po 'più oscuro del semplice codice ARM32, ma è comunque piuttosto semplice e molto potente.

Questa piccola bacheca sembra molto bella, per 80 euro: http://www.olimex.com/dev/stm32-103stk.html


È puramente accademico / autoapprendimento. Vorrei comprendere meglio la gestione della memoria di basso livello e le lingue di livello superiore.
Darren Young,

1

Fondamentalmente, nel senso della programmazione degli assembly, è necessario conoscere prima l'architettura sottostante, quindi il linguaggio corrispondente, ad esempio, con i microcontroller PIC, è possibile utilizzare il compilatore fornito e il linguaggio. Uso questo sito per fare riferimento ai tutorial del microcontrollore PIC.


1

Ho sempre scoperto che la parte più difficile era il mondo di Hello, che di solito è solo una banale funzione assem chiamata da un languare di livello superiore come aggiungere due numeri. Una volta superato questo ostacolo, si tratta semplicemente di aggiungere istruzioni e psuedo-op (come la definizione dei dati) al proprio repertorio.

Vorrei secondo geekbrit, anche se non ho mai usato ARM. Un'architettura minimale del genere non sarebbe solo più semplice, ma potrebbe avvicinarsi di più a un legittimo -opposto a un solo scopo didattico.


0

Ho un set di istruzioni, un assemblatore e un simulatore, con alcune lezioni che sono state create proprio per questo scopo. Non ho ancora feedback su quanto ho fatto bene o male, ma è là fuori, dagli 15 minuti o mezz'ora per vedere se ti insegna qualcosa. http://github.com/dwelch67/lsasim Dopo che ho alcuni simulatori di set di istruzioni tradizionali che puoi provare, semplice, senza fronzoli, dovrebbe funzionare ovunque tu abbia un compilatore C, ecc.

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.