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.
You will:
Autorentext
Daniel Kusswurm has over 35 years of professional experience as a software developer and computer scientist. During his career, he has developed innovative software for medical devices, scientific instruments, and image processing applications. On many of these projects, he successfully employed assembly language to significantly improve the performance of computationally intense algorithms or solve unique programming challenges. His educational background includes a BS in electrical engineering technology from Northern Illinois University along with an MS and PhD in computer science from DePaul University. Daniel Kusswurm is also the author of Modern X86 Assembly Language Programming (ISBN-13: 978-1484200650) and Modern X86 Assembly Language Programming, Second Edition (ISBN-13: 978-1484240625), both published by Apress.
Inhalt
Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 1 of 6Daniel KusswurmIntroductionBook overviewTarget audienceContent overviewSource codeTerminology and conventionsAdditional resourcesChapter 1 Armv8-32 ArchitectureArmv8-32 OverviewData typesFundamental data typesNumerical data typesSIMD data typesInternal architectureGeneral-purpose register fileApplication Program Status Register (APSR)Instruction set overviewInstruction operandsMemory addressing modesChapter 2 Armv8-32 Core Programming Part 1Integer arithmeticAddition and subtraction (Ch02_01)Multiplication (Ch02_02)Division (Ch02_03)Integer operationsLoad instructions (Ch02_04)Move instructions (Ch02_05, Ch02_06)Logical operations (Ch02_07)Chapter 3 Armv8-32 Core Programming Part 2Basic stack argumentsStack arguments (Ch03_01)Stack arguments using mixed data types (Ch03_02)Advanced stack use Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 2 of 6Daniel KusswurmStack use with local storage (Ch03_03)Stack use with frame pointer (Ch03_04)Using the APSR condition flagsCompare instructions (Ch03_05)Looping (Ch03_06)Chapter 4 Armv8-32 Core Programming Part 3Integer arrays Array arithmetic (Ch04_01) Array arithmetic using mixed-type integers (Ch04_02)Integer matrices Matrix example #1 (Ch04_03) Matrix example #2 (Ch04_04)Advanced programming Advanced array operations (Ch04_05) Structures (Ch04_06)Chapter 5 Armv8-32 Floating-Point ArchitectureFloating-point programming conceptsBinary encodingsNaNsDenormalsFlush to zeroFloating-point registersSingle-precision registersDouble-precision registersFPSCR (floating-point status and control register)Rounding modesExceptionsChapter 6 Armv8-32 Floating-Point ProgrammingFloating-point arithmeticFP arithmetic example #1 (Ch06_01)FP arithmetic example #2 (Ch06_02)FP arithmetic example #3 (Ch06_03)Floating-point compares and conversionsFP compares (Ch06_04)FP conversions (Ch06_05)Floating-point arrays and matrices Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 3 of 6Daniel KusswurmFP arrays (Ch06_06)FP matrices (Ch06_07)Advanced floating-point programmingUsing C++ floating-point library functions (Ch06_08)Chapter 7 Armv8-32 SIMD ArchitectureArmv8-32 SIMD Architecture OverviewSIMD programming conceptsWraparound and saturated arithmeticSIMD architectureRegister setsData typesSIMD arithmetic operationsPacked integer arithmeticPacked floating-point arithmeticChapter 8 Armv8-32 SIMD Integer ProgrammingPacked integer arithmeticAddition and subtraction (Ch08_01)Multiplication (Ch08_02)Shift and logical operations (Ch08_03)Packed integer image processingPixel minimum and maximum (Ch08_04)Mean intensity (Ch08_05)<...