Esiste un libro canonico sull'assemblaggio x86? [chiuso]

22

Ci sono molti libri sul montaggio. Tuttavia, di solito si occupano di ISA su cui non mi interessa, come MIPS o ARM. Non mi occupo di queste architetture; non c'è motivo per me di provare ad apprenderli.

Ma i libri di assemblaggio x86 sembrano ... inesistenti.

Diciamo per esempio che sto cercando di costruire un compilatore di giocattoli che generi file eseguibili portatili di Windows.

Esiste un libro là fuori che è lo standard de facto per descrivere le migliori pratiche, le metodologie di progettazione e altre informazioni utili sull'assemblaggio x86? Che dire di quel libro lo rende speciale?

    
posta Billy ONeal 22.08.2011 - 19:59
fonte

5 risposte

18

Ho usato Assembly Language per processori x86 come manuale quando ero al college e l'ho trovato molto facile da capire. Ho la quarta edizione precedente e l'ho confrontata con la sesta edizione e non ho notato molti cambiamenti, quindi potresti probabilmente ritirare una copia più vecchia a buon mercato. Le persone si lamentano del suo uso della propria libreria per I / O, ma lui ti dice come farlo in modo "duro" negli ultimi capitoli.

    
risposta data 22.08.2011 - 21:41
fonte
18

Il luogo ovvio dove andare è il sito Web di Intel, dove è possibile trovare manuali di programmazione e di riferimento per il download che contengono tutto ciò che c'è da sapere sull'architettura x86.

Qui: Architetture Intel® 64 e IA-32 Manuali dello sviluppatore del software

    
risposta data 22.08.2011 - 23:44
fonte
9

La programmazione dell'Arte dell'Assembly è un'ottima risorsa che ha un bel po 'di programmazione x86.

Anche la documentazione ABI x64 è utile. Stavo cercando di trovare un collegamento alla versione presente sul sito Web di AMD, ma non riesco a trovarlo più, quindi immagino che questo dovrà fare.

Qualcosa che può aiutare abbastanza [un po '] durante l'apprendimento è, invece di provare a scrivere un'app completa da zero in assembly, invece di scriverne la maggior parte in C (o in qualsiasi altro linguaggio compilato in realtà) e poi chiamare un blocco di codice assembly da quello. Una volta fatto ciò, invertilo, scrivi un programma assembly e chiama alcune funzioni C.

Modifica: corretto un errore di battitura.

    
risposta data 22.08.2011 - 21:08
fonte
4

Un ottimo libro per l'apprendimento dell'assemblaggio x86 è Strumenti per l'ottimizzazione dei processori Pentium . Mentre l'obiettivo principale del libro è l'ottimizzazione del codice di assemblaggio, insegna Pentium assembly lungo la strada, ed è anche un buon libro di riferimento.

È esaurito a lungo ma non è difficile da trovare usato.

Viene fornito con un dischetto contenente un "ottimizzatore del codice assembly". In realtà non ottimizza il codice, ma produce invece un elenco commentato che indica dove si trovano le inefficienze come le bancarelle della pipeline.

Lo strumento che viene fornito con un libro è una versione limitata di un prodotto più funzionale che la compagnia dell'autore ha usato per vendere, ma per ragioni che non conosco sono a lungo fuori dal mercato. Non so perché - penserei che uno strumento del genere sarebbe venduto come hotcakes.

x86 in generale è un argomento molto complesso in quanto vi sono molte varianti supportate da diversi modelli di microprocessori. Una volta che conosci le basi, ti consigliamo di consultare i databook di Intel o AMD per il chip preciso che hai scelto. Sfortunatamente il codice che gira veloce su un modello di CPU potrebbe non essere altrettanto veloce su un altro chip.

    
risposta data 22.08.2011 - 20:10
fonte
0

Perché non provare il wikibook - link . Dà un buon inizio introduttivo al linguaggio di assemblaggio.

La parte più difficile dell'assemblaggio consiste nel rendersi conto di quanto sia semplice e che tu debba stare con quella semplicità.

    
risposta data 04.03.2014 - 21:01
fonte

Leggi altre domande sui tag