Assembly Language introduction
What is assembly
Assembly is a language that is written as close to the hardware’s understanding while leaving room for a human’s understanding. A lot of the details hidden from view by higher order languages are exposed to the developer, which can be good for bad. “Assembly languages have the same structure and set of commands as machine languages, but they enable a programmer to use names instead of numbers.” [1]
Reasons to use assembly
“Today, assembly language is used primarily for direct hardware manipulation, access to specialized processor instructions, or to address critical performance issues. Typical uses are device drivers, low-level embedded systems, and real-time systems.”[2] Specialized hardware programmers need to address new hardware as its developed. A new piece of hardware will have new abilities that existing drivers (set of instructions) can understand. Another example could be speed optimizations. Compilers that convert higher order languages add a lot of “bloat” to executable files. A similar concept in web programming could be installing JavaScript assets like Bootstrap, when you only needed to change a button. This adds some slight bloat, which will be unnoticeable to us on modern systems. But let’s say we have a budget phone, or even a car sensor. We want minimize the size of the file run for speed returns.