06/06/09 20:05
cassin.simone
E di quale utilità è studiarlo seza applicare? A cosa servirebbe studiare senza applicazione?
aaa
07/06/09 8:37
theprogrammer
Ti fa comprendere molto meglio alcuni meccanismi "interni" che ti rendono semplici alcuni concetti che applicherai in altri ambiti.
Per spiegarmi meglio, io ho iniziato con l'assembly (CPU 6502, per la cronaca) e per anni ho programmato con l'assembly (erano tempi in cui serviva).
Quando sono passato al C, il concetto di puntatore (che era ostico per tanti ...) per me era semplicissimo (anzi scontato) e ho acquisito il linguaggio molto velocemente.
L'assembly, inoltre, ti mette a contatto con la "rappresentazione interna" dei dati e questo ti permette di capire molto velocemente (in seguito) argomenti legati alla criptazione, o allo scambio di dati in rete, e altri argomenti ...
aaa
07/06/09 10:06
cassin.simone
Non ho capito però una cosa: posso programmare solo su un processore con assembly?
aaa
25/06/09 16:19
se proprio hai la smania di programmare qualcosa in assembly, allora puoi partire da un semplice programmino in C. Lo compili con Visual Studio, dopodiché ti fai mostrare dall'editor la versione "Mixed C/Assembly" (non ricordo la dicitura corretta), che affianca al codice C la corrispondente traduzione in Assembly x86.
Se lavori su linux, puoi usare il programma da riga di comando objdump, che fa la stessa cosa.
In entrambi i casi il sorgente deve essere compilato con le opzioni di debugging attive, altrimenti il file compilato perderà i riferimenti alle righe di codice corrispondenti.
Funziona con tanti linguaggi, ma il C è più facile da rapportare al corrispondente ASM, in quanto le sue istruzioni sono molto elementari e non supporta costrutti particolarmente avanzati come operatori overloadati o funzioni virtuali che complicherebbero in parte la comprensione del codice ASM ottenuto