Assembly language is a low-level programming language. It's a the second generation of language just above machine language.
This language is a much more readable language than machine language because it assign names to:
Hardware-specific features require writing assembly code.
The assembly code is compiled into a instructions (object code) by a program called an assembler.
More See Assembly - Grammar (Syntax)
Learning assembly gives you a particular insight into how programmable device (and particularly a computer) works.
Assembly language is also the only tool, for implementing low-level component, such as: