ARM A32 Assembly Language: 32-Bit ARM, Neon, VFP, Thumb
ARM A32 ASSEMBLY LANGUAGE is your hands-on guide to learning how to program in ARM machine code using the world’s most modern microprocessor. Ideal for the novice, this book will take you from first principles through to becoming a competent ARM programmer. It covers all aspects of the ARM instruction set including Thumb, Neon, Advanced SIMD and Vector Floating Point Programming. The book covers the new Unified Assembly Language (UAL) and the use of AArch32 State in the latest range of ARM microprocessors. The book applies to all the main releases of ARM architecture such as those found on all the popular single board computers and development boards. Program examples are provided that are written using the GCC Assembler and Compiler which is freely available for most computer operating systems. Amazon Reviewer: Probably one of the best assembly language books I’ve seen. Although I used to do some assembly language programming many years ago, this book was a very good refresher and clearly explained… Highly recommended. Taking You From Beginner To Expert Providing lucid descriptions, award-winning author Bruce Smith keeps things simple and includes plenty of program examples you can try for yourself. Ideas and concepts are introduced in the order required so you should never be left wondering. Just some of the many features include: 320 pages Practical approach with program example Unified Assembly Language compatible Uses FREE GCC assembler and linker ARM registers and arrangements Addressing modes Use of operating system Syscalls Debugging with GDB Using libc function calls Programming the GPIO Thumb – 16-bit and 32-bit (T16 and T32) Floating Point Programming Advanced SIMD and Neon programing Number crunching examples ARM Architecture Using C to create Assembler AArch32 and AArch64 (64-bit ARM) Exception Handling ARMv8 Overview Compatible with popular Single Board Computers: Arduino, BeagleBoard etc Bruce Smith – Award Winner – 50+ books and over 500,000 sales!
Why Read This Book
You will get a practical, start-to-finish guide to programming 32-bit ARM processors in real assembly language, from first principles through advanced SIMD and floating-point programming. The book’s strengths are its hands‑on GCC assembler examples, coverage of the Unified Assembler Language (UAL) and AArch32 usage, and clear treatment of Thumb, NEON and VFP so you can write, debug and optimize real firmware and low-level code.
Who Will Benefit
Embedded engineers, firmware developers, and students who want to move from high‑level code to writing and optimizing ARM A32/AArch32 assembly for bare‑metal, RTOS or embedded Linux environments.
Level: Beginner — Prerequisites: Basic programming experience (C or similar), comfortable with binary/hex number systems and basic computer architecture concepts such as registers, memory and calling conventions.
Key Takeaways
- Write idiomatic ARM A32 and Thumb assembly using the Unified Assembler Language (UAL)
- Use NEON (Advanced SIMD) and VFP instructions for high‑performance numeric and multimedia code
- Assemble, link and debug ARM code with the GNU toolchain (gcc/as/objdump/gdb) and QEMU
- Apply calling conventions, stack discipline and exception handling for bare‑metal and Linux environments
- Optimize inner loops and data layouts for register usage, pipeline and SIMD throughput
- Integrate assembly modules with C and build practical example firmware for common development boards
Topics Covered
- 1. Introduction to ARM architecture and A32/AArch32 concepts
- 2. Number systems, data representation and basic instructions
- 3. Registers, status flags and processor modes
- 4. Data processing, logical and arithmetic instructions
- 5. Load/store architecture and memory addressing modes
- 6. Branching, subroutines, exceptions and the CPSR
- 7. Thumb state and mixed Thumb/ARM programming
- 8. Unified Assembler Language (UAL) and assembler directives
- 9. Advanced SIMD (NEON) programming and vector algorithms
- 10. Vector Floating Point (VFP) programming and numerical concerns
- 11. Toolchain: GNU assembler, compiler integration, debugging and QEMU
- 12. Performance tuning, instruction scheduling and code size tradeoffs
- 13. Hardware interfacing, memory‑mapped I/O and practical examples
- 14. Worked projects and appendix: instruction reference and templates
Languages, Platforms & Tools
How It Compares
More hands‑on and up‑to‑date on NEON/VFP and the Unified Assembler Language than classic texts like Sloss et al.'s "ARM System Developer's Guide" or Hohl's assembly introductions, which focus more on system architecture or older assembly idioms.













