As was stated previously Learn Assembly.
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture.
So Assembly is a symbolic representation of machine code
.
You may now be asking "Ok, so how do I learn all of that?" I am so glad you asked:
- Understand what it is. It is very low-level and will give you a very in-depth understanding of a computer. You might want to start with Wikipedia and then read this short passage.
- Learn it! Best reads are probably The Art of Assembly Language and Assembly Language Step-by-Step: Programming with Linux
- Get coding!