ATmega assembler

May 15, 2008 7 Replies

Finora ho programmato solo con il C. Adesso vorrei scendere piu a basso livello, ma nel marasma di internet purtroppo non riesco a trovare una guida sull'assembly dei mc atmega. Sono piu o meno tutte guide in c. Ho trovato una guida assembler sulla serie at90. Può andare bene per iniziare?


da

E' essenziale scaricarsi il datasheet del micro specifico e capire bene l'organizzazione della memoria, dei registri di controllo dell'MCU, dei clock, degli interrupt, del reset-vector (pu=F2 supportatarne pi=F9 di uno), e varie altre bazze di contorno.

Poi, dare un'occhiata alla tabella riassuntiva dei mnemonici con la breve descrizione funzionale ed i flag che vengono interessati.

A questo punto l'assembly diventa meno misterioso e pu=F2 essere efficacemente utilizzato.

Per una guida on-line, ti consiglio di installare AVRStudio4: nell'help c'=E8 tutto, istruzione per istruzione.

Ciao.

Il giorno Thu, 15 May 2008 03:39:47 +0200, "Cosimo" ha scritto:

Si trovano diverse appnote e altra roba sul sito Atmel:

formatting link

su avrfreak (ma devi registrarti, non inviano spam)

formatting link

poi questo sito che è la bibbia degli 'assemblearisti'

formatting link

con parecchie routine già fatte, si trovano anche dei tutorial e per esempio la mitica FLOAT 128 per operazioni a 128 bits in assembler.

-- ciao Stefano

">

Ho cliccato lì e...

L'assistente di IE di Spybot-S&D ha individuato un URL noto come risorsa nociva. h-ttp://ad.yeldmanger.com/st?ad_type=iframead_size=728x90section=265907 Right Media

Il giorno Thu, 15 May 2008 13:43:31 +0200, "Lucas" ha scritto:

Io in Windows uso Firefox con Noscript per cui non ho il problema.

-- ciao Stefano

Come pensavo, purtroppo. Avrei voluto qualcosa di piu introduttivo, visto che l'unico linguaggio assembler che conosco è quello del ... 6502. Vedrò di capirci qualcosa.

Il giorno Thu, 15 May 2008 15:48:25 +0200, "Cosimo" ha scritto:

Se tu fossi venuto dalla Z80 sarebbe stata tutta discesa.

Direi che con gli AVR ti va decisamente meglio che col 6502, visto che qui non hai solo un accumulateore e un puntatore, ma 32 registri, di cui 16 'accumulatori', nel senso che possono essere usati come sorgente o destinazione di operazioni tra registri, e 16 ' quasi accumulatori' che non supportano tutte le operazioni. Inoltre hai 3 coppie di registri puntatori X Y e Z che supportano direttamente il postincremento e il predecremento ( Z+ -Z) .

Guarda bene l'istruzione LPM che forse è quella un pò più ostica da capire per chi viene da un architettura diversa di µC.

Poi se vuoi qualche chiarimento chiedi pure!

-- ciao Stefano

Tutti quei registri mi spaventano un po' :-)

Questo è interessante

Ok

Hai già fatto abbastanza, ora mi devo studiare l' ISA.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required