Assembler or Assembly language is certainly one of the most powerful programming languages

available to software developers. It allows one to code in (almost) the same language

microprocessors speak and therefore gives maximum execution speed and smallest binary size.

Also it is most effective when it comes to accessing/managing hardware and system resources.

For Embedded systems developer it is simply a must since several key components of Linux kernel

image (head, piggy, etc) and bootloader are written in architecture specific assembly language.

Personally I started digging into assembler after several years of writing code in C/C++ and Java

and that experience with high-level programming languages gives me the reason/right to say that

Assembler is the best language for system level programming and it has also become my favorite.

That said it is only natural for me to start Assembler programming section on my web site.

And first page is dedicated to basics of NASM or Netwide Assembler: NASM ABC

Second part of NASM tutorial: NASM file operations with system calls