The Art of ARM Assembly, Volume 1

64-Bit ARM Machine Organization and Programming

Look inside
Paperback
$89.99 US
On sale Feb 25, 2025 | 1064 Pages | 9781718502826

See Additional Formats
Modern Instructions for 64-Bit ARM CPUs

Building on Randall Hyde’s iconic series, The Art of ARM Assembly delves into programming 64-bit ARM CPUs—the powerhouses behind iPhones, Macs, Chromebooks, servers, and embedded systems.

Following a fast-paced introduction to the art of programming in assembly and the GNU Assembler (Gas) specifically, you’ll explore memory organization, data representation, and the basic logical operations you can perform on simple data types. You’ll learn how to define constants, write functions, manage local variables, and pass parameters efficiently. You’ll explore both basic and advanced arithmetic operations, control structures, numeric conversions, lookup tables, and string manipulation—in short, you’ll cover it all. 

You’ll also dive into ARM SIMD (Neon) instructions, bit manipulation, and macro programming with the Gas assembler, as well as how to:

  • Declare pointers and use composite data structures like strings, arrays, and unions
  • Convert simple and complex arithmetic expressions into machine instruction sequences
  • Use ARM addressing modes and expressions to access memory variables
  • Create and use string library functions and build libraries of assembly code using makefiles

This hands-on guide will help you master ARM assembly while revealing the intricacies of modern machine architecture. You’ll learn to write more efficient high-level code and gain a deeper understanding of software-hardware interactions—essential skills for any programmer working with ARM-based systems.
Introduction
PART I: MACHINE ORGANIZATION
Chapter 1: Hello, World of Assembly Language
Chapter 2: Data Representation and Operations
Chapter 3: Memory Access and Organization
Chapter 4: Constants, Variables, and Data Types
PART II: ASSEMBLY LANGUAGE PROGRAMMING
Chapter 5: Procedures
Chapter 6: Arithmetic
Chapter 7: Low-Level Control Structures
Chapter 8: 12-Bit Manipulation
Chapter 9: Numeric Conversion
Chapter 10: Table Lookups
Chapter 11: SIMD/Neon Programming
Chapter 12: Bit Manipulation
Chapter 13: Macros and Gas-Compile Time Language
Chapter 14: String Operations
Chapter 15: Managing Complex Projects
Chapter 16: Standalone Assembly Programs
PART III: REFERENCE MATERIAL
Appendix A: ASCII Character Set
Appendix B: Glossary
Appendix C: The BASH Shell Interpreter
Appendix D: Some Useful C Language Features
Appendix E: Answers to Questions
Randall Hyde is an embedded software engineer who has worked in the medical, nuclear, consumer electronics, and entertainment industries. He taught assembly language programming at the university level for over 10 years. He is the author of The Art of Assembly Language, The Art of 64-Bit Assembly, The Book of I 2C, and the Write Great Code series, all from No Starch Press.

About

Modern Instructions for 64-Bit ARM CPUs

Building on Randall Hyde’s iconic series, The Art of ARM Assembly delves into programming 64-bit ARM CPUs—the powerhouses behind iPhones, Macs, Chromebooks, servers, and embedded systems.

Following a fast-paced introduction to the art of programming in assembly and the GNU Assembler (Gas) specifically, you’ll explore memory organization, data representation, and the basic logical operations you can perform on simple data types. You’ll learn how to define constants, write functions, manage local variables, and pass parameters efficiently. You’ll explore both basic and advanced arithmetic operations, control structures, numeric conversions, lookup tables, and string manipulation—in short, you’ll cover it all. 

You’ll also dive into ARM SIMD (Neon) instructions, bit manipulation, and macro programming with the Gas assembler, as well as how to:

  • Declare pointers and use composite data structures like strings, arrays, and unions
  • Convert simple and complex arithmetic expressions into machine instruction sequences
  • Use ARM addressing modes and expressions to access memory variables
  • Create and use string library functions and build libraries of assembly code using makefiles

This hands-on guide will help you master ARM assembly while revealing the intricacies of modern machine architecture. You’ll learn to write more efficient high-level code and gain a deeper understanding of software-hardware interactions—essential skills for any programmer working with ARM-based systems.

Table of Contents

Introduction
PART I: MACHINE ORGANIZATION
Chapter 1: Hello, World of Assembly Language
Chapter 2: Data Representation and Operations
Chapter 3: Memory Access and Organization
Chapter 4: Constants, Variables, and Data Types
PART II: ASSEMBLY LANGUAGE PROGRAMMING
Chapter 5: Procedures
Chapter 6: Arithmetic
Chapter 7: Low-Level Control Structures
Chapter 8: 12-Bit Manipulation
Chapter 9: Numeric Conversion
Chapter 10: Table Lookups
Chapter 11: SIMD/Neon Programming
Chapter 12: Bit Manipulation
Chapter 13: Macros and Gas-Compile Time Language
Chapter 14: String Operations
Chapter 15: Managing Complex Projects
Chapter 16: Standalone Assembly Programs
PART III: REFERENCE MATERIAL
Appendix A: ASCII Character Set
Appendix B: Glossary
Appendix C: The BASH Shell Interpreter
Appendix D: Some Useful C Language Features
Appendix E: Answers to Questions

Author

Randall Hyde is an embedded software engineer who has worked in the medical, nuclear, consumer electronics, and entertainment industries. He taught assembly language programming at the university level for over 10 years. He is the author of The Art of Assembly Language, The Art of 64-Bit Assembly, The Book of I 2C, and the Write Great Code series, all from No Starch Press.

Books for Asian American, Native Hawaiian, and Pacific Islander Heritage Month

Every May we celebrate the rich history and culture of Asian Americans, Native Hawaiians, and Pacific Islanders. Browse a curated selection of fiction and nonfiction books by AANHPI creators that we think your students will love. Find our full collection of titles for Higher Education here.

Read more