Vai al contenuto
PLC Forum


Programmazione Asm: No Grazie - programmazione dei micro


microst

Messaggi consigliati

Salve a tutti,

sono nuovo del forum. Vorrei iniziare la mia partecipazione sollevando il seguente quesito: vi sembra giusto che oggi non si vuole programmare piu in ASM ma tutti ricorrono a programmi e linguaggi ad alto livello che belli e bravi ti scrivono il tuo ASM. Non faccio riferimento in particolare ad un dato software. Tutta questa gente che impara a programmare in tal modo il giorno che si trovano un listato asm lo capisce?

Sono sicuri di avere un ASm ottimizzato?

Sembra la stessa storia di quelli che utilizzanoi software per relaizzare circuiti e poi non sanno leggere una netlist SPICE. Non dico che non si debbano utilizzare ( sono dei CAD) quindi ci aiutano ma e' anche vero che bisgna prima saper scrivere in ASM e poi utlizzare programmi piu complessi. E' come dire prima si impara a camminare poi a correre.

Grazie in anticipo per le vostre risposte.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti


ciao

a cosa ti riferisci alla programmazione di micro o di PC?

in entrambi i casi la programmazione assembler

e' possibile attraverso il compilatore C.

il programmare il C oppure basic e' molto piu' produttivo (ai giorni nostri)

un professionista deve conoscere (almeno un po')

le istruzioni assembler del micro con il quale lavora!

ciao

dario

Link al commento
Condividi su altri siti

Ospite bingobongo

beh, dipende sempre da cosa devi ottenere con il "codice" che scrivi. dall '84 quando scrivere per lo Z80 , poi per il 32000 e poi per la famiglia x86 voleva dire conoscere e usare l'assembler ne è passata di acqua sotto i ponti. negli ultimi anni (leggi 10-12) con i linguaggi 'avanzati' l'assembler per le applicazioni da 'ufficio' non serve più (a mio modesto parere) fanno tutto i vari Visual..., le macchine sono potentissime e che il codice prenda 1 secondi o 2 secondi per estrarre una lista di 1000 record poco importa.

altro discorso se programmi su schede embedded o cose + particolari!

Link al commento
Condividi su altri siti

Oggi non è più necessario conoscere l'assembler per risolvere problemi di programmazione. Questa affermazione la fa uno che predilige, ancora oggi, l'assembler. Però è solo un fatto affettivo. L'uso do "C", per esempio, è molto più produttivo. Ciò non toglie che, in condizioni particolari, inserisca parti di assembler per ottimizzare routine particolarmente veloci, o per risparmiare memoria dove non ce n'è molta, come con i PIC.

Link al commento
Condividi su altri siti

Innanzi tutto scusate se ho contravvenuto al regolamento. Una svista!

Sicuramente mi riferisco alla programmazione dei microcontrolori (PIC, AVR, ecc) e non a processori di ultima generaziore a 2^45 bit!

La mia critica e' rivolta a tutti coloro, sopratutto principianti, che si mettono davanti un PIC e pretendono di controllare il mondo. Poi non funziona nulla e ti mandano sul forum la domandina: come si fa?

Gli dici che devi settare il bit x del registro Y e ti risponde : cosa sono i registri?

Scopri poi che ha usato il bellismo programma tutto fare che, premendo i pulsante, ti realizza anche la board.

Link al commento
Condividi su altri siti

ifachsoftware

Conoscere l'assembler e' un po' come scrivere a mano l'importante e' saperlo fare , poi che si usi il computer per scrivere e' un altro discorso.

Secondo me sapere le basi dell'assembler e' utile per i PC (anche se oramai i vari stumenti visual praticamente te lo impediscono) e fondamentale per chi fa elettronica lavorando con i vari microcontrollori , in quanto che il loro utilizzo comporta una conoscenza di base dell'hardware senza la quale non si giunge a nessun risultato.

Ciao :)

Link al commento
Condividi su altri siti

L'assembler in fondo è un linguaggio di programmazione come un altro, anche se permette di andare a gestire ogni singolo bit del micro; conoscere l'architettura di quello che si va ad utilizzare è un altro conto.

Io ho iniziato a programmare su un commodere 64 nel 1984, li si andava solo a istruzioni testuali, il basic del commodore e l'assembler. Imparare a programmare con quella roba che oggi pare preistoria se a qualcuno può fare sorridere a me ha insegnato molto su cosa e come agisce quando un processore o una qualunque logica digitale esegue un programma/funzione.

Mi sono poi avvicinato al mondo dei plc e dei micro, ed oggi uso per i pic due compilatori basic (a seconda dell'applicazione d realizzare)!

Inorriditi? certo che ho sempre a portata di mano i data sheet dei micro che sto usando, conosco abbastanza i singoli protocolli e le modalità di funzionamento delle periferiche oltre che delle cpu, ma non vedo nulla di strano se invece di rompermi la testa una settimana per scrive una routine in un linguaggio per me ostico come l'assembler tiro giu 4 righe in basic invece di 4 pagine dove rivoltare come un calzino registro per registro; non mi sento certo male a pensare di aver risparmiato tempo e denaro che uso magari per trovare i componenti migliori di contorno all'applicazione.

Non abbiate paura che qualche "yuppie rampante" della programmazione possa offuscare le doti di chi invece con serietà e professionalita ci mette impegno e conoscenza... sia perchè quando serve qualcosa di serio sempre da chi mastica bene devono andare, sia perchè chi certe doti non le ha... o se le costruisce con duro lavoro o semplicemente non le avrà mi

Link al commento
Condividi su altri siti

ifachsoftware

Il fatto di conoscere l'assembler e' fondamentale per uscire dalle rogne.

Faccio un esempio :

che cosa fate se il compilatore sbaglia magari lavorando in una zona con dei bachi hardware ?

Oppure se avete scelto un micro e non potete cambiarlo e una routine ci mette troppo tempo ?

Ciao :)

Link al commento
Condividi su altri siti

  • 4 weeks later...

Si...sicuramente in assembler si puo' scrivere del codice perfettamente ottimizzato,

tanto da poterne contare i colpi di clock necessari ad eseguire un routine (interrupt a parte) pero' vincola il lavoro fatto esclusivamente al core scelto ,in questo caso il PIC.

Oggi si possono comprare microcontrollori potenti con pochi euro, perche' perdere del tempo con dei dispositivi che esistono solo perche' alcune aziende ne muovono a vagonate spuntando avvolte costi inferiori ad un euro.

I linguaggi di alto livello come il "C" permettono la trasportabilita' del codice da un dispositivo ad un altro anche con core diverso, e questo avvolte permette di guadagnare

moltissimo tempo e non ci rende pigri facendoci sposare una architettura per sempre...

Saluti.

Link al commento
Condividi su altri siti

concordo con quanto detto dai vari personaggi

Per i pc non esiste proprio scrivere applicazioni windows o web in assembler

, sarebbe un copia ed incolla delle funzioni principali e poi poco produttivo

Esistono dei tools, visual basic, visual c#, anche della borland che permettono

la scrittura di codici in tali linguaggi ad alto livello

E' chiaro che il linguaggio e' potenti ma altresi le applicazioni sono sempre piu

complesse ed esigenti

Con i nuovi tools ci sono delle istruzioni , o meglio dire metodi , che tramite oggetti precedentemente preparati ,sostituiscono decine di metodi semrpe ad alto livello di compilatori precedenti .

Certo poi e' sempre importante vedere come vengono eseguite tali operazioni , in quanto tempo e con quali risorse.

Anche per i plc uso scrivere delle routine veloci in awl tipicamente mirate per compiti specializzati .

Devo dire che comunque anche i compilatori ad alto livello sono fortemente ottimizzati e performanti .

Per quanto riguarda i micro , la mia poca esperienza mi dice che si possono utilizzare dei tools per scrivere programmai in C o basic , ottimizzando anche qua particolari routines in assembler .

L'analisi si sviluppa quando ci si pongono i vari quesiti :

ma cosa devo fare?

in quanto tempo lo devo fare ?

quante risorse ho a disposizione , come ram , rom o flash ?

Nel mio caso sto facendo degli studi su fpga altera , descrivendo hw con linguaggio

VHDL (simile al pascal) dove si possono anche implementare processori a 32 bit.

E' chiaro che in questo caso utilizzo un tool in C , anche perche gestire cose grandi e' anche bello avere degli editor che aiutano a vedere dove si trovano delle variabili o altro .

Nel caso di processori o microcontrollori a 32 bit , rispetto a quelli a 8 bit , trovo che l'assembly sia molto piu "bello" e potente

In una riga si scrive l'istruzione , i due parametri ed il registro dove

appoggiare il risultato

Mentre nei micro ad 8 bit e' una procedura abbastanza lunga per esmpio eseguire una moltiplicazione o un'operazione a 16-32 bit

Correggetemi se sbaglio

ciao

walter

Link al commento
Condividi su altri siti

  • 2 weeks later...

Salve a tutti.

mi fa specie trovarmi, dopo appena 40 minuti dalla mia iscrizione a questo forum, in mezzo ad una discussione così "intensa" (non sto prendendo in giro nessuno. le virgolette stanno solo a significare che non mi veniva un termine adatto a descrivere le mie sensazioni leggendo quanto dite. Mi sento onorato di poter interagire con personalità come Voi) é notevole infatti vedere tanta umiltà e comprensione davanti a tanti "poveri illusi" (io per primo) che si buttano nel primo volume "programmare con i PIC" che vedono e si trovano a combattere con istruzioni impossibili da ricordare, flag in esadecimale, e quant'altro.

Ho esperienza di programmazione PLC, da anni (+ di 15) ho lavorato con questi "oggetti" e ritenevo di avere le carte in regola per ri-cominciare un percorso che avevo lasciato all'usicta dall' Ipsia.

Ma mi sto accorgendo che senza le basi si può, forse, fare molto (i programmi di cui sopra) ma si capisce ben poco di quello che si è fatto (o che non si è fatto ! n.d.a.!)

Ho voglia di imparare l'assembler e (santi permettendo) il "C" mio obbiettivo da anni (- di 15) Ma sinceramente, a scapito di quanto scrive il sig. Orsini, su internet ho trovato ben poco se non i classici autodidatti del web che metto qualche istruzione al volo, un circuitino stampato, e ti fanno credere di aver conquistato la Silicon Valley ?!?!

Non vi sono fonti sicure da cui iniziare sapendo che alla fine avrai qualcosa in mano (ed in testa) di completo e adeguato.

Sono un poco demotivato, ma non voglio rifugiarmi nei programmini dove dici quello che vuoi fare e ti tirano fouri anche lo stampato. Voglio farcela partendo da zero.

Ed è bello sapere che la penso come Voi . (oppure preferirei affermare che c'è ancora gente che la pensa come me, ma sinceramente potreste sentirvi offesi da questa dichiarazione, e ne avreste tutti i diritti.....)

Ciao! Grazie a tutti e buon lavoro.

Danilo

Modificato: da tatonilo
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...