Getting Started with x86 Assembly Programming

People often wonder what, exactly, makes their computer work. How does the computer turn one’s action into the magic on their monitor? To control the most basic aspects of computing, programmers use Assembly language.

Assembly is similar to many other languages in that code is preprocessed before running. This is done using an assembler. If you use Linux, I strongly recommend you use the Netwide Assembler. NASM, is it is usually called, is used in most tutorials, and is not difficult to learn. If you are on Windows, your best bet is likely Flat Assembler. FASM is nearly identical to NASM, as far as syntax. When you write your code in assembly, your assembler processes it to object code.

Once you have your assembler, you need to learn to write assembly. While there are a number of tutorials for x86 assembly, Dr. Paul Carter’s PC Assembly Language, a free textbook, provides a great starting point. After you read that, you should definitely take a look at some open source programs/operating systems to get an idea of how you can implement assembly. MikeOS, MenuetOS, and the Linux kernel v.01 (Note: Windows users need 7zip to extract that) all are good to read. Finally, websites like OSDever and OSDev are classic OS development websites that include dozens of tutorials.

Good luck with your pursuits!

2 comments.

  1. Actually I have nasm installed on my suse but never tried it…ok, maybe for “hello, world”. All I can say is that it’s worth doing it, especially if you have time. Assembler is like the father of all.

  2. I never wrote anything big in it, but I felt just learning about it and getting the basic structure really enriched my knowledge of computers.

Post a comment.