marco94 ha scritto:ok... Capisco i linguaggio ad alto livello sono migliori dell'assembly
Cosa vuol dire "migliore"?
Secondo me fai benissimo a imparare l'assembly perchè non esiste nulla "
migliore" di qualcos'altro: dipende sempre da quello che devi farci. Se posso dirti la mia (visto che anche io ho cominciato a studiarlo più o meno alla tua età) io inizialmente avevo una piccola guida delle istruzioni per l'assembrler 486 (ossia il 99% delle funzioni che si usano ancora oggi). Poi scrivevo programmi molto semplici e li disassemblavo per studiare il codice per vedere se avevo capito.
Oggi invece la cosa migliore è anche affiancarsi al manuale del micro processore e al manuale assembler, come stai facendo tu. Conoscere infatti le sole istruizioni oggi è limitativo. Infatti tu accennavi alla volontà di "scrivere programmi di boot". Non so se hai mai dato un'occhiata al sistema di boot di linux (che fino alla
start_kernel() è tutto scritto in assembler), ma se lo fai noterai che il sistema non è così semplice come si possa pensare in quanto l'esecuzione comincia in Real Mode dove valgono alcune istruzioni assembly e la mappatura della memoria non è ancora fatta, poi interroga il BIOS per avere informazioni e/o configurare alcune funzioni e poi si passa in Protected Mode (e quindi suberntra tutto in casino della MMU, alcune funzioni assembler non sono più prmesse, ecc). In altre parole devi conoscere l'architettura nel suo complesso.
Ma non solo! Prova a dare un'occhi allo scheduler di Linux: alla fine lo switch dei processi si scrive in assembler! Così come anche molte altre funzioni. Se poi tu cambiassi architettura te ne accorgeresti ancora ti più.
E' chiaro che se devi fare un programma gestionale o simile se usi l'assembler ti suicidi! ma questo già lo hai capito

...almeno questa è la mia opinione.
bye