Most programmers hardly use assembly languages.
Then why bother learning them?
Some reasons of learning an assembly language are
It is fundamental knowledge of computer science. Assembly language is related to computer architecture, operating system, data representation, hardware devices, etc.
Learn more about the computer you are using. Assembly language is closely tied to the computer's hardware and software.
Certain types of programming are difficult or impossible to do in high-level languages. For example,
Directly communicate with the computer's operating system.
A computer game application might have to directly access the video controller and sound card.
A special program may be needed to interface a printer or serial device to a computer.
Assembly languages are ideal for writing the two applications:
Embedded: They are short programs stored in a small amount of memory in a single-purpose devices such as printers.
Real-time: They are simulations and hardware monitoring require precise timing and responses.
A Visual Basic program can call a DLL (Dynamically Linked Libraries) procedure written in assembly language to speed up the program in critical areas of code.
Assembly-language programs can easily bypass restrictions imposed by high-level languages.
For example, the Pascal language does not allow a character value to be assigned to an integer variable.
Assembly language, in contrast, has very few restrictions or rules; nearly everything is left to the discretion of the programmer.