An Assembly Language is said to be a low level language that is used in the writing of various computer programs. It is a language providing one level of abstraction above a computer's machine language. Machine languages consist entirely of numbers and are almost impossible for humans to read and write. Assembly Languages have the same structure and set of commands as machine languages, but they enable a programmer to use names instead of numbers.
An Assembly Language contains the same instructions as a Machine Language, but the instructions and variables have names instead of being just numbers. Programs written in high-level languages are translated into assembly language and/or directly to machine language by a compiler. Assembly Language programs are translated into machine language by a program called an assembler.
Each type of CPU has its own machine language and assembly language, so an assembly language program written for one type of CPU won't run on another. In the early days of programming, all programs were written in Assembly Language. Now, most programs are written in a mid-level languages such as FORTRAN or C, or, high-level languages such as Java or C++. Programmers still use assembly language when speed is essential or when they need to perform an operation that isn't possible in a high-level language. 
- wikipedia: Assembly language
- wikipedia: x86 assembly language
- 8086 assembler tutorial for beginners (part 1): http://www.emu8086.com/assembly_language_tutorial_assembler_reference/asm_tutorial_01.html
- Webopedia -- Assembly Language: http://www.webopedia.com/TERM/a/assembly_language.html