Gain the fundamentals of Armv8-A 32-bit and 64-bit assembly language
programming. This book emphasizes Armv8-A assembly language topics that
are relevant to modern software development. It is designed to help you
quickly understand Armv8-A assembly language programming and the
computational resources of Arm's SIMD platform. It also contains an
abundance of source code that is structured to accelerate learning and
comprehension of essential Armv8-A assembly language constructs and SIMD
programming concepts. After reading this book, you will be able to code
performance-optimized functions and algorithms using Armv8- A 32-bit and
64-bit assembly language.
Modern Arm Assembly Language Programming accentuates the coding of
Armv8-A 32-bit and 64-bit assembly language functions that are callable
from C++. Multiple chapters are also devoted to Armv8-A SIMD assembly
language programming. These chapters discuss how to code functions that
are used in computationally intense applications such as machine
learning, image processing, audio and video encoding, and computer
graphics.
The source code examples were developed using the GNU toolchain (g++,
gas, and make) and tested on a Raspberry Pi 4 Model B running Raspbian
(32-bit) and Ubuntu Server (64-bit). It is important to note that this
is a book about Armv8-A assembly language programming and not the
Raspberry Pi.
What You Will Learn
- See essential details about the Armv8-A 32-bit and 64-bit
architectures including data types, general purpose registers,
floating-point and SIMD registers, and addressing modes
- Employ Armv8-A assembly language to efficiently manipulate common data
types and programming constructs including integers, arrays, matrices,
and user-defined structures
- Create assembly language functions that perform scalar floating-point
arithmetic using the Armv8-A 32-bit and 64-bit instruction sets
- Harness the Armv8-A SIMD instruction sets to significantly accelerate
the performance of computationally intense algorithms in applications
such as machine learning, image processing, computer graphics,
mathematics, and statistics.
- Apply leading-edge coding strategies and techniques to optimally
exploit the Armv8-A 32-bit and 64-bit instruction sets for maximum
possible performance
Who This Book Is For
Software developers who are creating programs for Armv8-A platforms and
want to learn how to code performance-enhancing algorithms and functions
using the Armv8-A 32-bit and 64-bit instruction sets. Readers should
have previous high-level language programming experience and a basic
understanding of C++.