In these series of articles we will learn how to program microprocessors that are compatible Intel and AMD processors running on more recent versions of the Microsoft Windows operating system. The Microsoft Marco Assembler, or MASM is a useful software that can serve your needs. Usually MASM is bundled with Microsoft Visual Studio. Assembly languages are the oldest programming languages out there. They are the most similar to the machine language used by computers. With an assembly language, you can control direct components of a computer’s hardware, which is necessary why those wanting to learn how to code in assembly languages will need to know how their own computer’s architecture and operating system works in order to write functional assembly code.
There are not many informational resources on assembly languages out there as of yet, so this series of articles will attempt to close somewhat of the gap. These series of articles will aim to equip the reader with some basic understanding of computer architecture, machine language and low-level programming and how they all come together to get hardware to execute functions in a meaningful way. The minimal amount of knowledge required for assembly programming can help a person test some functions on the most common microprocessor family. Do not try and think of it as programming a “toy” computer used for simulation purposes, the MASM is an industrial-strength assembler, that is usually used as an industry standard in the computer science field. For this, you will be required to acquire knowledge of the architecture of the Intel processor family as a programmer would.
In order to effectively use programming languages like C and C++, you will need to accumulate a somewhat thorough comprehension of how memory, address and instructions work at a low level of programming. The vast majority of programming errors you will encounter in high-level programming languages are incomprehensible due to the programmer not knowing the mechanism associated with them at the low level. In order to effectively delve into debugging without wasting much time, having some level of assembly code comprehension will help you operate on your program’s internals so you can diagnose the problem more effectively in order to solve it.
Low-level programming is an integral part of a programmer’s understanding of computer science and it’s value or usefulness should not be underestimated. The details of software and hardware related secrets will be unlocked to you through this knowledge. Any programmer or computer scientist’s knowledge base is not complete without knowing some fundamentals of low level details. But before being able to understand lower level languages, it would be of great assistance if you had programming experience of more structured higher level programming languages such as Java, C, Python and C++. It is also required to know how to use IF statements, arrays and functions for debugging programming related issues.