Pagina 1 di 1

Da assembler a C

MessaggioInviato: 17 mar 2012, 16:54
da mros
Buongiorno a tutti

E' il mio primo post in questo forum che trovo molto interessante rispetto a quello che sta in rete. La mia prima domanda e' : Vorrei passare da assembler a C per programmare i micro PIC.
Quali sono gli aspetti positivi e quelli negativi in questa scelta?

Grazie

Re: Da assemblee a C

MessaggioInviato: 17 mar 2012, 17:25
da DSPfra
Foto Utentemros ti consiglio di iniziare da questo articolo e questo di Foto UtenteTardoFreak, sono un'ottima partenza! :D

Re: Da assemblee a C

MessaggioInviato: 17 mar 2012, 20:00
da simo85
Si chiama Assembly, l'assembler è il compilatore. Il vantaggio di passare a programmare in C, detto brevemente è che scrivi più velocemente il codice e tutto il resto lo fa il compilatore, mentre programmare in Assembly implica sapere e/o imparare a basso livello come funziona l'architettura che ti accingi ad usare. A mio parere è molto utile praticare un po' di Assembly per l'architettura con cui si lavora se possibile, ma è un mio parere. :)

Re: Da assemblee a C

MessaggioInviato: 21 mar 2012, 13:23
da TardoFreak
Diciamo che il C è una benedizione perché lo si usa con tutti i micro (più o meno).
Un solo linguaggio per tutti.
Come dice [user]gohan[/user] non si può tralasciare lo studio approfondito dell' architettura del micro su cui bisogna lavorare (se si vuole lavorare seriamente e non solo giocare a fare i microcontrollisti) ed il suo set d' istruzioni, ma la programmazione diventa molto più semplice.
L' assembly obbliga per definizione a conoscere a fondo il micro.

Re: Da assembler a C

MessaggioInviato: 21 mar 2012, 14:12
da Candy
Aggiungerei che conoscere l'architettura del micro ed il suo codice macchina è essenziale per impararne pregi e difetti, piuttosto che limitazioni.
Il compilatore C converte una sintassi standard in codice macchina: lo fa sempre bene ed al meglio? Risolve tutto cosa mi interessa o ha a sua volta dei limiti, magari imposti, che in taluni casi devo poter superare?

I vantaggi di usare un linguaggio letterario come il C e quindi un compilatore sono innumerevoli, basti citare l'ottimizzazione dell'uso ed allocazione della RAM, piuttosto che la semplicità ed immediatezza della scrittura del codice.

Con l'assembler invece non ci sono "controllori" che impediscono taluni vincoli e, potrei, ad esempio, programmare di alterare un bit, piuttosto che un byte, ovunque, con tutte le conseguenze del caso.

Re: Da assembler a C

MessaggioInviato: 22 mar 2012, 0:55
da dursino
I compilatori ormai sono intelligentissimi, oltre che trasformare dal "linguaggio ad alto livello non interpretato " ad Assembly,spostano le istruzioni per permettere di sfruttare il parallelismo della macchina sottostante ed altre cose!

Che assembly conosci? X86, o più specifico di qualche micro?

Ciao

Re: Da assembler a C

MessaggioInviato: 22 mar 2012, 8:28
da Paolino
Non posso che essere d'accordo con [user]gohan[/user] e Foto UtenteTardoFreak: l'assembly è importante, in quanto permette di conoscere a fondo come è strutturato il microcontrollore. Se si commettesse l'errore di iniziare direttamente con il C si rischia di capitolare, trovandosi di fronte a problemi legati proprio alle caratteristiche del micro. Nel tuo caso, il passaggio è (per tua fortuna, secondo me) meno indolore.

Fatta questa premessa, e dato che tu conosci già l'assembly, questi secondo me sono i maggiori vantaggi:
- riduzione del tempo nello sviluppo di un'applicazione;
- possibilità di utilizzare librerie "molto potenti" di interfacciamento periferiche (e non solo);
- portabilità del codice;
- agevolazioni nell'uso di operandi in virgola mobile.

Tra i "contro" annovero quanto segue:
- se non si proviene dall'assembly, valogono tutti i limiti già elencati prima;
- un compilatore non ottimizzato potrebbe sprecare troppe risorse (RAM e FLASH);
- le librerie a volte importano parte di codice inutile alla tua applicazione;
- rischio di "farsi prendere la mano" e di aumentare a dismisura il codice (che scritto in C sembra molto più compatto) e di saturare il micro.

Ciao.

Paolo.