- eBook:Modern Arm Assembly Language Programming: Covers Armv8-A 32-bit, 64-bit, and SIMD
- Author:Daniel Kusswurm
- Edition:1 edition
- Data:November 1, 2020
- Pages:484 pages
- Format:PDF, ePUB
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
- Use the Armv8-A 32-bit and 64-bit instruction sets to create performance-enhancing functions that are callable from C++
- 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
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++.
Chapter 2: Armv8-32 Core Programming – Part 1
Chapter 3: Armv8-32 Core Programming – Part 2
Chapter 4: Armv8-32 Core Programming – Part 3
Chapter 5: Armv8-32 Floating-Point Architecture
Chapter 6: Armv8-32 Floating-Point Programming
Chapter 7: Armv8-32 SIMD Architecture
Chapter 8: Armv8-32 SIMD Integer Programming
Chapter 9: Armv8-32 SIMD Floating-Point Programming
Chapter 10: Armv8-64 Architecture
Chapter 11: Armv8-64 Core Programming – Part 1
Chapter 12: Armv8-64 Core Programming – Part 2
Chapter 13: Armv8-64 Floating-Point Programming
Chapter 14: Armv8-64 SIMD Integer Programming
Chapter 15: Armv8-64 SIMD Floating-Point Programming
Chapter 16: Armv8-64 Advanced SIMD Programming
Chapter 17: Optimization Strategies and Techniques