Apri il cofano della macchina.
Per anni hai programmato premendo pedali e ruotando il volante di linguaggi di alto livello, fidandoti del fatto che, da qualche parte là sotto, qualcosa traducesse i tuoi gesti in movimento. Manuale completo di Assembly ti porta finalmente a guardare il motore - e a metterci le mani.
Questo libro insegna l'assembly x86-64 partendo da zero, senza altri prerequisiti che la curiosità. Userai l'assemblatore NASM in sintassi Intel su Linux e, lungo 29 capitoli progressivi, passerai dai primi byte a veri programmi completi, capendo a ogni passo perché la macchina si comporta come fa.
Che cosa imparerai
- L'architettura x86-64: registri, memoria, flag e ciclo di esecuzione
- Trasferimento dati, aritmetica e logica bit a bit
- Controllo di flusso: confronti, salti, cicli, stack e procedure
- Modalità di indirizzamento, array, stringhe e strutture
- Le system call di Linux, i file e l'input/output
- Virgola mobile e calcolo vettoriale con SSE e AVX
- Macro del preprocessore, sezioni dati, ottimizzazione e debugging con GDB
- Linking e formato ELF, fin nei dettagli
- Tre progetti completi: una calcolatrice da riga di comando, la reimplementazione di funzioni di libreria e una piccola macchina virtuale
Un metodo che funzionaOgni capitolo alterna spiegazioni limpide, esempi di codice commentati riga per riga e
box di approfondimento su note e insidie. Imparerai anche a
usare l'intelligenza artificiale come compagna di studio - con prompt pratici e, soprattutto, con la consapevolezza dei suoi limiti.
Al termine di ogni capitolo trovi
esercizi svolti e
esercizi proposti, con
tutte le soluzioni in appendice. In chiusura, un ampio apparato di riferimento: tabelle delle istruzioni, registri e flag, glossario, risorse, errori comuni con relativa diagnosi e un confronto fra x86-64, ARM64 e RISC-V.
Per chi è questo libroPer studenti, programmatori curiosi e autodidatti che vogliono capire
davvero come funziona un calcolatore: non per spaventarli con la complessità, ma per restituirgliene il controllo. Perché, come recita l'epigrafe,
per capire davvero una macchina bisogna imparare a parlarne la lingua.