Domanda : ma serve davvero ?
Ti chiedo questo perchè programmare in assembler x86 credo che sia inutile... Prima si faceva per avere un contatto "diretto" con l'hardware e per ottentere prestazioni maggiori, ma attualmente i compilatori producono codice molto ottimizzato rispetto a quello che potrebbe produrre un prorammatore assembler di media bravura...
Inoltre se programmi a 32 bit non hai più l'accesso diretto all'hardware...togliendo così tutti i vantaggi dell'assembler...
Addirittura Microsoft non produce più il suo assemblatore...
Se ti interessa uno sguardo all'architettura con esempi di programmazione assembler a 32 bit credo che un libro valga un altro...sono argomenti talmente inflazionati che un autore non si potrebbe permettere di scrivere un libro fatto male
Comunque io ti posso consigliare il mio libro di Calcolatori Elettronici :
Architettura dei calcolatori (con riferimento al personal computer)
Paolo Corsini (è incredibile, ma è un mio prof), Graziano Frosini, Beatrice Lazzerini (anche questi miei prof)
McGraw-Hill
E' un libro introduttivo sull'assembler, ma che spiega abbastanza a fondo come è costituito un Personal Computer sia nella CPU che nell'accesso alle periferiche...
Non si basa su una CPU reale, ma su una CPU semplificata a 32 bit...
L'assemblatore usato e quello GNU...
Spiega com interfacciare C e assembler e come funziona un compilatore...
Addirittura tenta di mettere in piedi un semplice sistema operativo (dimostrativo) scritto interamente in assembler...