
The Art of Assembly Language [pdf] - tambourine_man
http://www.ic.unicamp.br/~pannain/mc404/aulas/pdfs/Art%20Of%20Intel%20x86%20Assembly.pdf
======
userbinator
Note that this is the version from before Randall decided that writing his own
assembler with a completely different syntax than anything else out there and
rewriting his book to use it was a good idea. Thus I recommend this version
and not the later ones.

~~~
pling
Great news. Thats the first question I asked myself about this. HLA was a
crock of shit.

~~~
chris_wot
Well, there are worse things. However, the No Starch Book is less than useful
because of it.

------
philix001
MASM, MS-DOS... 32/64 bit? The hardest thing about learning x86 Assembly is
finding a manual that deals mostly with the CPUs ans OSes we use these days.

~~~
fromdoon
This is probably what you are looking for :

Computer Systems: A Programmer's Perspective By Randal E. Bryant and David R.
O'Hallaron

[http://csapp.cs.cmu.edu/](http://csapp.cs.cmu.edu/)

~~~
easytiger
That's a good book. So fundamental in its content it is suprising so few
similar books exist. It is very expensive however.

------
2Pacalypse-
I've read this whole book while working at some boring job as a student and
have it all printed out on an A4 paper in my desk.

I've always had a great interest into reverse engineering, so I thought
learning assembly from the ground up would be a good start. However, I've
actually learned more about some general concepts on how the computers work on
the lowest level than I did the actual assembly programming; probably due to
me losing focus further I went into the book.

I've never really continued my journey into the reverse engineering in great
depth, but I'm curious how much this book is relevant to the problems today
that are solved with assembly language.

~~~
mtdewcmu
One problem that's solved with assembly today is optimizing code in C or C++.
In order to do that, you'd certainly need to study documentation newer than
this book, because you need to know the performance characteristics of (old)
instructions on current CPUs and you need to know about new instructions, like
SIMD instructions. Without that knowledge, you'd be lost, because you're
trying to beat the compiler, which is already pretty good.

This would be a good foundation, though. Not everything has changed.

------
kcoul
I must admit I enjoy the (intentional?) typo of "Forward" rather than
"Foreword". Forward!

Busted though, reading this specifically to review for a final CS exam in
hardware/OSes.

This book might pair nicely with a current Coursera (which, yes, I'm also
using to review for the final):
[https://www.coursera.org/course/hwswinterface](https://www.coursera.org/course/hwswinterface)

------
sand500
"Today, many machines have 32 or 64 megabytes of memory installed and some
applications use it all."

Didn't realize how old this was until I hit that line

------
tchaikovsky
Thanks for posting this version! Does anyone know where one can find the
resources listed in the book (standard libraries & source code)? The link
ftp.cs.ucr.edu seems to be long-dead.

Also does anyone know if there is a solution manual available anywhere for
this edition? Thank you!

This is a great find; looking forward to learning this stuff the right way.

------
snoopybbt
That book is awesome BUT that PDF is from an old edition, and it's somehow
unusable todays (seriously, MASM?).

I have been reading that very same book, but third edition, which focuses on
GNU/Linux as platform, and it's way better.

Also, you can "find online" the pdf for the third edition.

~~~
acqq
Some people don't want to depend on HLA on which the newer editions are based,
it's probably the main reason why this version is posted.

------
progman
Great and very comprehensive book but focused on x86 only. Any recommendations
for really good ARM assembler tutorials? Thanks for advice.

------
ihenriksen
Good stuff, thanks!

