38

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?

not-too-smatr
  • 599
  • 2
  • 7
  • 10
  • 2
    I didn't like either of the top 2 linked tutorials, and the 3rd link is a link to this post. While I find keyword advise helpful, linking to Google directly like that can be extremely annoying for people that found this page via google. – CornSmith Jan 30 '14 at 01:48

7 Answers7

26

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).

pcarter
  • 1,516
  • 14
  • 21
Ayman Hourieh
  • 132,184
  • 23
  • 144
  • 116
8

http://en.wikibooks.org/wiki/X86_Assembly

plan9assembler
  • 2,862
  • 1
  • 24
  • 13
7

I agree that PC Assembly Language is very good. Other good ones using GAS are:

JF.
  • 211
  • 1
  • 3
3

"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.

BoraxMan
  • 49
  • 1
2

I recommend Jeff Duntemann's Assembly Language Step By Step, Third Edition. It was my first introduction to asm, but is nice and readable and fairly modern and up to date.

jpowell
  • 365
  • 3
  • 5
1

I would recommend the assembly tutorials page at http://pickatutorial.com

I hope it helps.

Sonia
  • 11
  • 1
1

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:

http://unixwiz.net/techtips/win32-callconv-asm.html

http://www.delorie.com/djgpp/doc/ug/asm/calling.html

  • Brief tutorial

http://www.csn.ul.ie/~darkstar/assembler/

  • Using SSE

http://www.neilkemp.us/v4/articles/sse_tutorial/sse_tutorial.html

Tom
  • 43,810
  • 29
  • 138
  • 169