ASM Assembly , una mano?

Stato
Discussione chiusa ad ulteriori risposte.

Valar Morghulis

Utente Platinum
4 Luglio 2010
3,702
142
319
1,118
Salve a tutti.. frequento il 4° anno e faccio elettronica ed elettrotecnica.. quest'anno useremo l'assembly perciò , per portarmi avanti , vorrei iniziare a studiare questo linguaggio per conto mio. Ovviamente come al solito su google non ho trovato gran che , per questo motivo mi rivolgo a voi. In sostanza mi servirebbe una guida , una introduzione a questo linguaggio con le istruzioni , come funziona e magari uno o due esempi (Il tutto a livello "scolastico" si intende..).
Grazie in anticipo ;)
 
Ti ringrazio , appena posso guardo con attenzione e provo a vedere se capisco qualcosa.
Lascio aperta la discussione per eventuali suggerimenti di altre pagini .
 
Quello è il migliore per quanto riguarda la teoria, per la pratica di fa iniziare dalla programmazione a 16 bit che non ti serve realmente a meno che tu non debba scrivere un sistema operativo e poche altre cose molto improbabili.

Comunque spesso a scuola iniziano o con processori vecchissimi (non intel) o, con sistemi a 16 bit, quindi magari chiedi al tuo insegnante cosa farete!

Sent from my MI 1S using Tapatalk HD
 
L'asm che si fa alle scuole superiori (ma anche all'università) è molto limitato e riguarda soprattutto l'architettura del processore e non la scrittura di reale software, cosa che peraltro è inutile. Io fossi in te mi soffermetrei soprattutto sui registri e sul loro basilare utilizzo, lo stack e la memoria. Ma proprio solo la base, possibilmente sia in intero che in floating point (caratteristica non disponibile su tutti i micro).
 
L'asm che si fa alle scuole superiori (ma anche all'università) è molto limitato e riguarda soprattutto l'architettura del processore e non la scrittura di reale software, cosa che peraltro è inutile. Io fossi in te mi soffermetrei soprattutto sui registri e sul loro basilare utilizzo, lo stack e la memoria. Ma proprio solo la base, possibilmente sia in intero che in floating point (caratteristica non disponibile su tutti i micro).
Ora ripeti lo stesso al mio professore che tenta di farci apprendere l'assembly dell'8086 a 16 bit xD
 
  • Mi piace
Reazioni: EvOlUtIoN_OGM
L'asm che si fa alle scuole superiori (ma anche all'università) è molto limitato e riguarda soprattutto l'architettura del processore e non la scrittura di reale software, cosa che peraltro è inutile. Io fossi in te mi soffermetrei soprattutto sui registri e sul loro basilare utilizzo, lo stack e la memoria. Ma proprio solo la base, possibilmente sia in intero che in floating point (caratteristica non disponibile su tutti i micro).

Secondo il tuo ragionamento (che condivido a pieno, anche perché non ci capisco nulla di asm XD, quindi non posso far altro che ascoltare), questo pdf dovrebbe bastare, o no ? http://www.ce.unipr.it/people/broggi/calcol/lucidi.pdf
 
Ora ripeti lo stesso al mio professore che tenta di farci apprendere l'assembly dell'8086 a 16 bit xD

Sarà che anche anche da me hanno usato un approccio simile, visto che ho studiato in dettaglio (per quanto si possa entrare in dettaglio in pochi mesi) l'architettura mips, però a me non è sembrato così male. Nei processori moderni le cose si sono complicate notevolmente, quindi a scopo didattico i processori vecchio stile vanno ancora più che bene, senza contare che l'8086 è in qualche modo il padre dei processori moderni: le famose architetture x86 (o x86_64 che sono quelle dei pc attuali) prendono il nome e hanno la retrocompatibilità con quel processore (la famosa parte legacy, che ormai è perlopiù un impiccio).

Ti salti un bel pezzo di nuovo assembly (es. tutte le varie istruzioni SIMD), ma hai la possibilità di comprendere meglio cosa c'è sotto la scocca. Parliamoci chiaro, se vuoi programmare l'assembly è utile (o meglio: inutile) tanto quanto sapere com'è strutturato un processore, però secondo me è più istruttivo dare un'occhiata all'architettura del processore.
 
  • Mi piace
Reazioni: abalossa
Non so quasi nulla dell'architettura mips ma ci sono alcune cose che sono molto più semplici su processori IA-32 o IA-64 che su quelli più vecchi come l'8086, a cominciare dalla memoria, il modello segmentato è incredibilmente complesso rispetto a quello usato nei processi moderni, ed usare lo stack FPU è molto più incasinato dei vari SSE o AVX.

Poi in realtà non ti servirà mai l'assembly programmando realisticamente ma l'architettura del processore, come diceva steve, torna utile, vuoi per fare ottimizzazioni o altro; (s)fortunatamente anche l'architettura si è evoluta dall'8086, alla fine a scuola ti danno un'infarinatura generica per avere un'idea di cosa potrebbe effettivamente succedere quando viene eseguito del codice.

Se invece tu vuoi, per curiosità, follia, o che ne so, imparare a programmare in assembly ti conviene limitarti alla teoria per quanto riguarda i 16bit, ma passare almeno a 32bit per scrivere programmi praticamente, se non 64 direttamente che ti semplifica ulteriormente le cose
 
Ora ripeti lo stesso al mio professore che tenta di farci apprendere l'assembly dell'8086 a 16 bit xD

Faccio il reverser da tempo e lavoro su sistemi embedded e cmq sul basso livello da oltre 10 anni...quello che ho scritto lo ripeto a chi vuoi.
Attenzione però che non ho detto che farlo è inutile, anzi è un toccasana per capire veramente che cosa fa un sistema a microprocessore durante l'esecuzione di un'applicazione. E questo serve sopratuttto per non incorrere in alcuni errori tipici di chi ha sempre programmato ad alto livello, fermo restando che ancora oggi in certe circostanze è necessario ancora scrivere qualche riga di ASM, anche se nel 99,9% dei casi si scrive in C.

Detto questo, l'asm cambia in base all'architettura per cui lo si scrive, ma per l'8086 ci sono diverse guide più o meno approfondite in rete.
Questa ad esempio è un buon reference per le istruzioni base: http://www.gabrielececchetti.it/Teaching/CalcolatoriElettronici/Docs/i8086_instruction_set.pdf
Questo è un reference per asm 8086 scritto al politecnico di Torino: http://www.cad.polito.it/~sonza/05chj/dispense/ASSEM_01.pdf
E qualche cenno indispensabile sull'architettura: http://www.cad.polito.it/~sonza/05chj/dispense/8086ARCH.pdf
Questo ti basta e ti avanza, ma ci sono altre dispense qui Index of /~sonza/05chj/dispense sempre in italiano.
 
  • Mi piace
Reazioni: abalossa
Stato
Discussione chiusa ad ulteriori risposte.