Skip to main content

Assembly

Assembly is among some of the oldest tools in a computer-programmer's toolbox.
Entire software projects can be written without ever looking at a single line of assembly code.
So the question arises :

Why learn assembly ?

  • Assembly language is one of the closest forms if communication that humans can engage in with a computer
  • With assembly, the programmer can precisely track the flow of data and execution in a program in a mostly human readble form.
  • once a program has been compiled, it is difficult (and at times, nearly impossible) to reverse-engineer the code into its original form. As a result, if you wish to examine a program that is already compiled but would rather not stare at hexadecimal or binary, you will need to examine it in assembly language. Since debuggers will frequently only show program code in assembly language.
  • Code written in assembly has less overhead than code written in high-level languages, so assembly code frequently will run much faster than equivalent programs written in other languages/
  • Code that is written in a hist-level langueage can be compiled into assembly and "hand optimized" to squeeze every last bit of speed out of it.
  • Hard manufacturers such as Intel and AMD add new features and new instructions to their processors, of then time the online way to access those features is to use assembly routines. that is, at least until the major compier vendors add support for those features.

Comments