# 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

## Other Assembly Languages

Assembly Languages :
| x86 Assembly | The Assembly Language used by 32-bit Intel Machines including the 386, 486, and Pentium Family. |
| MIPS Assembly | A Common RISC Assembly Language that is both powerful and relatively easy to learn. |
| 68000 Assembly | The Assembly language used by the Motorola 68000 series of microprocessors. |
| PowerPC Assembly | The Assembly language used by the IBM PowerPC architecture. |
| SPARC Assembly | The Assembly language used by SPARC Systems and mainframes. |
| 6502 Assembly | The 6502 is a popular 8-bit microcontroller that is cheap and easy to use. |
| TI 83 Plus Assembly | The instruction set used with the TI 83 Plus brand of programmable graphing calculators. |
| 360 Assembly | The instruction set used with the IBM 360 / 370 / 93xx and z/System brand of Mainframe computers. |