Hey there. You won’t find me claiming to be an expert in reverse engineering or exploit development. This is chiefly due to my limited experience with assembly. Therefore, I will not attempt to write a tutorial or “how to” on any of those topics. However, I have had questions as to where people can go to start learning assembly language. Below are listed some resources I have found the easiest to understand and most benificial. There is actually quite a large amount of assembly related resources out there. However, many of them are too focused on a specific architecture, or come from a development perspective. These resources are almost all exclusively x86 Intel or AT&T resources. If you want to jump into ARM or SPARC assembly you probably need to ask someone else. I will try to list these resources in the order they should be read:
1) Wikipedia: Assembly Language: Wikipedia is always a great place to start. It will give you a brief overview on what assembly is, and some of the terminology invovled. Read this once, twice or three times. Make sure you are familiar with the terminology and concepts.
2) Securitytube’s Assembly Primer for Hackers: These videos are well worth your time. They take assembly, cut out the “development” fluff (stuff that security professionals arn’t usually interested in), and demonstrate its uses in creating exploits.
3) Function Call Conventions: Helps to break down the structure of the stack, how different registers are utilized, and how memory is utilized.
4) 15 First Dates with Assembly: This document gives you step by step demonstrations on how to read assembly and write your own simple programs. This is one of my favorites.
5) Smashing the Stack for Fun and Profit: A classic. Not necessarily an assembly document, but this is a great document to help you think about how you should continue your education on the topic.
This is jsut a start. I hope it helps!