
You’ve probably heard that computers are made up of bits and bytes—ones and zeros—that somehow transform into your favorite game or that lecturing email from your mother-in-law. And you’ve heard right. The basic building block of a computer’s memory is the bit, a tiny switch that’s either on or off, one or zero. Bits can be grouped together to form larger numbers. For example, combining 8 bits can represent values ranging from 0 to 255.
These numbers can represent data, like creating a picture of your dog or capturing waveform patterns in a pumping techno beat. They can also serve as instructions for the CPU to execute. The CPU reads these numbers and performs operations based on their meaning. This is machine code.
With machine code, a programmer can fully control the computer, writing programs that run at peak performance while keeping the code compact. But if a programmer only wrote numbers to make the computer do what he wanted, it would quickly become too difficult, and he would lose track of his program.
This is where assembler comes to the rescue. It provides a human-friendly layer on top of machine code. Each instruction still operates at the basic machine code level, but numbers are replaced with words that carry the exact same meaning.
0680 0000 0001
These numbers are the machine code that tells the CPU to add the number 1 to a register called d0.
add.l #1,d0
This is the same instruction written in assembly language, which the assembler will convert into the number shown above.

As you can see, remembering these words is much easier than recalling the raw numbers. These translated cues are called mnemonics, a term derived from the Greek word “mnemonikos,” meaning “related to memory.”
Why learn assembler and low-level coding when you have options like C, Basic, or even Pascal? It’s a fair question. If you want to get your code up and running quickly, those other languages might be the better choice. But when it comes to optimizing that tight loop slowing down your application, assembler is the way to go. And maybe, like me, you’ll discover that assembler becomes your preferred programming language for almost everything.
Let’s look at some pros and cons to break it down.
| Pro | Con |
| Fastest code. | Steep learning curve |
| Compact code. | Takes longer to finish projects. |
| Full control of all details. | More likely to create bugs in you code. |
| Fun and challenging. | |
| It’s not as difficult once you’ve got some experience. | |
| Makes you one of the cool guys. |
