i always thought the art of assembly is the de facto bible [1]<p>personally i had all these books and never really cared too much about them in the end is was having a c compiler and a good disassembler - ida at that time - that made me learn it.<p>here's the free copy of ida 5 [2]. i think it doesn't do 64 bit, but it's good enough, and works perfectly fine in wine on both osx and linux. you can always use biew/hiew/olly etc, or more recently hopper, but i think for learning ida is still hands down the best choice<p>do a string copy see what it does. make a function notice how it always starts with<p><pre><code> push ebp
mov ebp, esp
...
pop ebp
ret
</code></pre>
make a switch statement, see what it compiles too(ida annotates it beautifully).<p>i commend the author for what he's doing. a little improvement would be to reduce some of the text, and add some more examples, and some guidance on how to experiment.<p>another sidenote is that the code is basically the same as simple c code. c++ code even doing simple things, depending on what you link, and compile in, can be terribly confusing for a newbie to look at.<p>[1] <a href="http://portal.aauj.edu/portal_resources/downloads/programming/assembly_language32bit_edition.pdf" rel="nofollow">http://portal.aauj.edu/portal_resources/downloads/programmin...</a><p>[2] <a href="https://www.hex-rays.com/products/ida/support/download_freeware.shtml" rel="nofollow">https://www.hex-rays.com/products/ida/support/download_freew...</a>