Quote:
Originally Posted by hydra
I would rather recommend this one:
Professional Assembly Language by Richard Blum
http://www.amazon.com/Professional-A...pd_sim_b_img_2
It is based on Linux, so almost everything is usable under FreeBSD after little modifications. Most important, it uses Unix standard tools like ld, gcc, gdb.
|
I like the Blum book for a couple of reasons. Like you said, it uses native gnu tools that are found on most Linux and BSD OS. Unfortunately it doesn't explain the difference in syscalls between Linux and the rest of the world or even mention they exist, so if you are trying to learn x86 from scratch and running FreeBSD (or some other non-Linux OS) you will not get very far. segfault. If you're already an advanced C programmer who wants to pick up assembly, this could be the book. If you want to learn Intel assembly as your first language, stick to 32 bit Linux or things will go bang like with Duntemann's book.
There aren't many non-Windows Intel assembly books on the market, the vast majority pretend nothing but Windows exists. So this book definitely has a place because it targets Linux and goes with the AT&T syntax.
These two books (this and Duntemann's) are not one or the other. nasm is probably the leading non-gnu assembler for Linux and BSD. If you get both these books you'll have an excellent start on x86 programming covering all the major issues from both the Intel (nasm) and AT&T (gnu) styles.