We live in a time when you don’t have to know assembly language to successfully work with embedded computers. The typical processor these days has resources that would shame early PCs and some of the larger ones are getting close to what was a powerful desktop machine only a few years ago. Even so, there are some cases where you really want to use assembly language. Maybe you need more speed. Or maybe you need very precise control over timing. Maybe you just like the challenge. [Robert G. Plantz] from Sonoma State University has an excellent book online titled “Introduction to Computer Organization: ARM Assembly Langauge Using the Raspberry Pi.” If you are interested in serious ARM assembly language, you really need to check out this book.

If you are more interested in x86-64 assembly and Linux [Plantz] has you covered there, too. Both books are free to read on the Internet, and you can pick up a printed version of the Linux book for a small payment if you want.

Since these are meant to be college textbooks, they aren’t quick reads, but they also are a lot more detailed than the typical blog post about how to do assembly. Even if you don’t want to read it cover to cover, you might find some of the specific write-ups about debugging and interacting with C code useful.

The Raspberry Pi book is written using a system called PreTeXt which looks interesting. We liked how the output looked, although it would be handy if you could dump it to a PDF for your book reader.

We were very impressed by the comprehensive nature of both books. We’ve looked at very simple and brief introductions before. We’ve even done our own short takes about Linux and assembly with C.