You can't get more instruction set info than vol. 2A/B here: <a href="http://www.intel.com/products/processor/manuals/" rel="nofollow">http://www.intel.com/products/processor/manuals/</a>
I recommend "Assembly Language" by Jeff Duntemann and "The Art of Assembly Programming" by Randall Hyde [1]<p>[1] <a href="http://webster.cs.ucr.edu/AoA/index.html" rel="nofollow">http://webster.cs.ucr.edu/AoA/index.html</a>
I learned with a fabulous book that I believe was called "80836 Assembly Programming" or some such, from Microsoft Press. Also did a really good job of explaining the processor architecture, although I don't know how much that's changed between the x86 and the current generation. A lot, I assume. I know the P4 has a very different register set. I believe the instruction set is largely the same, however.<p>I can try and find it in my basement, if you really need it.
You can use the online book "PC Assembly Language" by Dr.Paul A. Carter url <a href="http://www.drpaulcarter.com/pcasm" rel="nofollow">http://www.drpaulcarter.com/pcasm</a><p>This book however covers protected mode(80386 and later) and not real mode(8086).
Start with 386/486 in 32-bit protected mode. Segmented addressing sucks and is not used. The 8086 also has a lot of extra instructions like LOOP which are useful only if you want to be a demo coder. On modern x86 many of these instructions aren't used.
If you truly want to understand the x86, you should first learn the 4004, then the 8008, then the 8080, then the 8088, then 8086, then the 80186, then the 80286, then the 80386, then you can go in a number of directions that others have suggested.
As I recall back in the day, I got more from anything written by Michael Abrash, a serious gearhead back in the 80's who eventually joined Id Software.