X86 Assembly/Resources

Wikimedia Sources

 * x86 Disassembly
 * Operating System Design
 * Embedded Systems
 * Floating Point
 * C Programming
 * C++ Programming

Books

 * Yurichev, Dennis, "An Introduction To Reverse Engineering for Beginners". Online book: http://yurichev.com/writings/RE_for_beginners-en.pdf
 * Carter, Paul, "PC Assembly Tutorial". Online book. http://www.drpaulcarter.com/pcasm/index.php
 * Hyde, Randall, "The Art of Assembly Language", No Starch Press, 2003. ISBN 1886411972. http://www.artofassembly.com
 * Triebel and Signh, "The 8088 and 8086 Microprocessors: Programming, Interfacing, Software, Hardware, and Applications", 4th Edition, Prentice Hall, 2003. ISBN 0130930814
 * Jonathan Bartlett, "Programming from the Ground Up", Bartlett Publishing, July 31, 2004. ISBN 0975283847. Available online at http://download.savannah.gnu.org/releases/pgubook/
 * Tambe, Pratik, "Primitiveasm: Learn Assembly Language in 15 days!!!", 1st online Edition at http://pratik.tambe.googlepages.com/
 * Gerber, R. and Bik, A.J.C. and Smith, K. and Tian, X., "The Software Optimization Cookbook: High-Performance Recipes for IA-32 Platforms", 2nd edition, Intel Press, 2006. ISBN 9780976483212
 * Blum, R., "Professional Assembly Language", 1st edition, Wiley, 2005. ISBN 9780764579011
 * x86 Assembly Adventures video course by xorpd

Web Resources

 * The Intel® 64 and IA-32 Architectures Software Developer's Manuals cover basic architecture, instruction set, system programming and other topics. They are available in downloadable PDF and can also be ordered on CD-ROM (order form) and as hard copy (order information).
 * There are many online instruction set references. http://web.archive.org/20051121163920/home.comcast.net/~fbui/intel.html includes the number of clock cycles that each instruction takes, and http://siyobik.info/index.php?module=x86 gives a thorough summary of each command, including pseudocode describing the operation.
 * AMD's AMD64 documentation on CD-ROM (U.S. and Canada only) and downloadable PDF format - maybe not independent but complete description of AMD64 through Assembly. http://developer.amd.com/documentation/guides/Pages/default.aspx#manuals
 * Optimizing subroutines in assembly language: An optimization guide for x86 platforms
 * The microarchitecture of Intel and AMD CPU’s: An optimization guide for assembly programmers and compiler makers
 * Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel and AMD CPU's
 * Calling conventions for different C++ compilers and operating systems
 * "8086 Microprocessor Emulator" "emu8086 is the emulator ... with integrated 8086 assembler and tutorials for beginners. The emulator runs programs like the real microprocessor in step-by-step mode. It shows registers, memory, stack, variables and flags. All memory values can be investigated and edited by a double click."
 * "Using the RDTSC Instruction for Performance Monitoring"
 * "SIMPLY FPU"
 * "Paul Hsieh's x86 Assembly Language Page"
 * "The world's leading source for technical x86 processor information"
 * "The Art of Picking Intel Registers"
 * x86 Assembly Adventures Open source exercises