views:

2997

answers:

5

Hello everyone. I'm currently teaching myself x86_64 assembly, mostly via AMD's ABI. There's tons of great resources out there for learning x86, but I'm finding that the 64 bit arena is pretty sparse.

Anyone have some good resources hidden away?

+4  A: 

x86_64 is really just an extension of x86, so I'd start with a good tutorial on x86 first.

Dr. Pauls x86 Tutorial is well written and very easy to follow. Once you've got that down, Google around for some x64 examples and extend your code from there. Also, Intel's developer manuals are a great reference.

Good luck!

It seems that in my journey, it's mostly the 'gotchas' that happen between the two that have tripped me up. For instance, using the 6 registers first and then the stack for any more when passing arguments to functions...
Steve Klabnik
+2  A: 

I really enjoyed Assembly Language Step-by-step: Programming with DOS and Linux

docgnome
+4  A: 

sandpile.org is a great resource for processor information.

The AMD Reference Manuals are good for understanding exactly what all of the available instructions do and how to use them.

If you are studying assembly, then you are probably interested in optimizing the hot spots in your code. The Software Optimization Guide for AMD64 Processors can help with that.

Intel has similar reference and optimization manuals.

mch
A: 

I think AMD has better collection of documents and more informative than Intel.

I had referred Intel C++ Optimizing Applications for Vectorizations, which does talk at application level but not from Compiler perspectives...