Also available in paperback version.
Uses x86-64 (AMD/Intel) assembly language to introduce computer organization. Emphasis is on software; includes two chapters on hardware design. Intended... More > primarily for a first- or second-year college course but could also be used by professional programmers as an "introduction to the manuals."
The approach is not to teach how to program in assembly language but to describe what is going on at the assembly language level when writing in a high level language. Based on the 64-bit mode. Each concept is introduced with C/C++ constructs followed by a discussion of the assembly language implementation. Assumes that the reader already knows basic programming concepts in a high-level language and builds on that.
Uses GNU/Linux, which allows a clear connection between C/C++ and assembly language. C Standard Library is used for I/O instead of supplying special routines.
Full table of contents and sample chapters at bob.cs.sonoma.edu.< Less