Thread: learn assembly
View Single Post
  #5   (View Single Post)  
Old 26th December 2012
Randux Randux is offline
Disgruntled desktop user
Join Date: May 2008
Location: Siberia
Posts: 100

Originally Posted by hydra View Post
I would rather recommend this one:
Professional Assembly Language by Richard Blum

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.
__________________ refugee #27
Multibooting with LILO
Reply With Quote