I want to learn some practical assembly language having just learned the basic concepts in class. Are there any decent books or tutorials (nasm, etc) that would be recommended?
-
PC Assembly Language is my favorite resource on assembly programming. It's modern, free, and covers a variety of topics. It uses NASM and the examples are available for Linux (among several other systems).
-
I agree that PC Assembly Language is very good. Other good ones using GAS are:
Johnd : Professional Assembly Language is a great book, I recommend it, too -
I recommend the official Intel manuals. You can request the hard copy on Intel's website.
See http://en.wikipedia.org/wiki/X86_assembly_language#External_links
* Intel 64 and IA-32 Software Developer Manuals * AMD64 Architecture Programmer's Manual Volume 1: Application Programming (PDF) * AMD64 Architecture Programmer's Manual Volume 2: System Programming (PDF) * AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions (PDF) * AMD64 Architecture Programmer's Manual Volume 4: 128-Bit Media Instructions (PDF) * AMD64 Architecture Programmer's Manual Volume 5: 64-Bit Media and x87 Floating-Point Instructions (PDF)
Some resources from my personal friend, Google:
- Function calling convention:
- Brief tutorial
- Using SSE
http://www.neilkemp.us/v4/articles/sse_tutorial/sse_tutorial.html
-
A side question: what is the point in learning assembly just for the heck of it? The thing is, it seems that it would be hard to find a practical application for it, because if you need "low-levelness" you can just write it in pure ol' C.
Please note, that I am not trying to label your question is useless, on the contrary, I absolutely love coding in assembly languages, even though I haven't done very much of it (yes, sadly it is a bit of a platonic love), - precisely because, it seems, I am unable to find something practical, that can be done in assembly only (after all, if it can be done in C, why use assembly, then?).
P.S. I am terribly sorry for adding this as an answer, it was too long for a comment :(
-
"what is the point in learning assembly just for the heck of it? "
Because you get to learn HOW the CPU works and get a better understanding of the system. I would say understanding assembler is in itself practical.
-
I would recommend the assembly tutorials page at http://pickatutorial.com
I hope it helps.
0 comments:
Post a Comment