Assembly Language and Embedded Systems Development

On the Value of Assembly Language, and Resources to get you started in Digital Logic, Computer Architecture, and Assembly Language programming.

Despite advances in programming technologies since the 1970s, there are still reasons to understand and learn assembly language programming. Contrary to what one may imagine, Assembly Language is not a relic of the past, even though a typical applications programmer will almost never need to drop into assembly.

In this article, we’ll look at practical situations in embedded systems development in which assembly language programming is still used, pedagogical reasons to learn assembly language, and provide resources and projects for gaining a working knowledge of digital logic, computer architecture, and assembly language programming.

Continue reading this article…

Bare Metal Programming: The C Language

…for Embedded and Low-Level Systems Development

C provides the convenience of learning one language while retaining the ability to target a variety of platforms including modern operating systems (Linux, Windows, Mac), real-time operating systems, systems-on-a-chip, and a host of microcontrollers for embedded development. And if you have to “mov” the bits around yourself (device drivers, DMA controllers), you can do that too. This is a significant efficiency over assembly languages which are essentially chip-specific control codes and therefore require understanding the architecture of the chip in each target platform.

Continue reading this article…

Hurling Boulders: Assembly Language Programming

… An Overview of Assembly Language Programming

Assembly language programming often evokes images of a time when real programmers hurled boulders the size of small UNIVACs. The mystique is there for those whose computer science training is primarily in higher level languages.

But programming is programming, and one language shouldn’t be much harder to pick up than another? In theory, perhaps. But in practice, there are a myriad of details.
Continue reading this article…

An Open Source Assembly Language Toolset

… for Assembly Language Programming

To get started with assembly language on your x86 box, here is a set of open source (free) toolchain elements that play well together when host and target platforms are an x86 PC running a Windows (or Linux) operating system…
Continue reading this article…

Dear Readers!

Our Google+ (Buzz) page is where we publish more regular (~monthly), shorter posts. Feel free to check it out! Full length articles will continue to be published here, with notifications through the Feed (you can join the list below).