Linux Format

Low-level kernel access and coding

Learning assembly language won’t make you a faster programmer. It won’t enable you to create portable, write-once run-anywhere programs. It’s not object-orientated. It’s not new. So why learn it? The answer is that it just might make you a better programmer. By learning just what a processor can and can’t do, you’re on the way to a deeper understanding of computer science.

A processor doesn’t just perform arithmetic – it also performs Boolean logic operations. Understanding Boolean logic operations teaches you about the Boolean logic gates inside the CPU and how the CPU uses these logic gates to make decisions. That just might make you a more capable computer engineer as well as a better programmer.

Assembly language is a low-level language: it’s specific to a particular processor. You use it to program a specific processor at the hardware level. Compilers understand assembly language, because that’s what they use to create the instructions in high-level languages. C++ is used to create many different programming languages. The C++ compiler strings together lots of assembly language instructions to do its work. Every kind of program ultimately executes machine language on the computer.

Some assembly required

Assembly language is simply machine language with mnemonics. Mnemonics are names given to machine language instructions, also known as op codes, so that we don’t have to remember hundreds of numeric values. It allows us to write a program using identifiers like ADD, SUB, MOV and so on.

High-level languages make programs portable – they enable you to program without worrying about the low-level details of how the CPU works. They provide the abstraction that lets you think about problems at a higher level. Object-orientated languages like C++, Java, C#, Python and so on are ‘higher’ high-level languages that enable you to incorporate the problem domain into your program. The programs you create with an object-orientated language ‘understand’

You’re reading a preview, subscribe to read more.

More from Linux Format

Linux Format1 min read
Neofetch Is Dead
On 26th April, Dylan Araps, creator of Neofetch, archived the GitHub repository for the project. This didn’t come as much of a surprise to the community, as the utility has only been updated infrequently in the past few years. Araps updated the Readm
Linux Format13 min readInternet & Web
HotPicks
Version: 2.2.1 Web: https://drawpile.net Krita offers everything you need to create digital art on the Linux desktop, but what if you need to work with other artists to conjure up your masterpiece? Drawpile is a cross-platform drawing app whose main
Linux Format9 min read
Create Old-school Pixel Art Images
Credit: www.gimp.org Think of retro games and you’ll probably think of the pixellated look of titles released on consoles such as the NES. Games such as Bomberman and Kid Icarus worked within the limitations of ’80s technology, yet offered hours of f

Related Books & Audiobooks