This book will be available in June.
Raspberry Pi Assembly Language Unleashed
The sequel to Bruce Smith's top selling Raspberry Pi OS Assembler Programming, this new book delves into both 32-bit and 64-bit Assembly Language programming on the Raspberry Pi. Two books for the price of one! So, learn both or just one. 32-bit is far from obsolete and will be required for compatibility issues for a long time. Therefore, knowing how to use both is highly beneficial. in these situations, there are chapters for the A32 and A64 specifically and these are clearly marked by have either A32 or A64 at the start of the chapter title. In this way if you just want to follow through looking at a single processor your navigation path is simple.
To make navigation easy, chapters dedicated to each architecture are clearly marked—A32 for 32-bit topics and A64 for 64-bit topics. This way, if you're only interested in one processor type, you can follow a streamlined path through the book.
Understanding Two Architectures in One Book
Discussing a topic that has two distinct implementations is more challenging than it might seem. However, both architectures share a great deal in common, and they can even run on the same processor in Raspberry Pi models featuring ARMv8-A, such as the Raspberry Pi 3 and 4. Whether a program runs in 32-bit or 64-bit mode depends on the processor’s architecture and the operating system. I'll explain this in detail later. Because of this shared foundation, much of the book covers general ARM programming concepts applicable to both architectures. However, when it comes to writing specific programs, the differences become more pronounced. That’s why dedicated chapters for A32 and A64 exist, clearly marked to help you navigate effortlessly.
Structure of the Book
The book is divided into several distinct sections:
Part 1: We start with the fundamentals of ARM programming, examining the advantages and trade-offs of 32-bit and 64-bit operations. This section also explores processor configurations on ARMv7 and ARMv8 in the Raspberry Pi, and we even take a brief look at ARMv9.
Part 2: We cover core ARM concepts common to both architectures, including operands, ARM register arrangements, logical operations, and conditional execution. Instruction sets and program structure are also discussed, along with recommendations on the best tools for writing your code.
Part 3: This section focuses specifically on A32 (32-bit), applying what you've learned so far to real-world examples.
Part 4: We dive into A64 (64-bit) programming, building on the previous sections to demonstrate how to work with the newer instruction set.
Part 5: Finally, we explore how to interface Assembly with higher-level languages such as Python and C.
This book provides a structured yet flexible approach to mastering Raspberry Pi Assembly programming, ensuring you gain the skills to work effectively with both 32-bit and 64-bit architectures.
Discussing a topic that essentially has two different methods of implementation is a task which is not as easy as it might seem. However, there is a great deal in common between the two architectures , and indeed they can both occupy the same processor chip on Raspberry Pi models with ARMv8-A processors, such as the Raspberry Pi 3 or 4. The compatibility and execution depend on the processor’s architecture and the operating system being used. I’ll detail that shortly.
Because there is a lot of common ground it’s possible to discuss much without specifics between the two processors. When it comes to the details of writing programs things change, it is in these situations there are chapters for the A32 and A64 specifically and these are clearly marked by have either A32 or A64 at the start of the chapter title. In this way if you just want to follow through looking at a single processor your navigation path is simple.