Why Learn Assembly Languages
 
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.