Assembly languages Books
APress Modern Arm Assembly Language Programming
Book SynopsisGain 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 inTable of ContentsModern 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)Image thresholding (Ch08_06)Chapter 9 – Armv8-32 SIMD Floating-Point ProgrammingPacked floating-point arithmeticAddition, subtraction, multiplication, division (Ch09_01)Compares (Ch09_02)Conversions (Ch09_03)Packed floating-point arraysMinimum and maximum (Ch09_04)Least squares (Ch09_05)Packed floating-point matrices4x4 matrix transposition (Ch09_06)4x4 matrix multiplication (Ch09_07) Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 4 of 6Daniel KusswurmChapter 10 – Armv8-64 ArchitectureArmv8-64 OverviewData typesNumerical data typesSIMD data typesInternal architectureGeneral-purpose register fileFloating-point and SIMD registersStatus flags and condition codesInstruction set overviewOperandsMemory addressing modesChapter 11 – Armv8-64 Core Programming – Part 1Integer arithmeticAddition & subtraction (Ch11_01)Multiplication (Ch11_02)Division (Ch11_03)Integer operationsLoad and store instructions (Ch11_04)Move instructions (Ch11_05)Logical instructions (Ch11_06)Shift instructions (Ch11_07)Chapter 12 – Armv8-64 Core Programming – Part2Stack arguments and local storageStack arguments using mixed data types (Ch12_01)Stack arguments with local storage (Ch12_02)Using condition codesCompare instructions (Ch12_03)Looping (Ch12_04)Integer arrays and matricesArray programming example (Ch12_05)Matrix programming example (Ch12_06)Chapter 13 – Armv8-64 Floating-Point ProgrammingFloating-point arithmeticSingle-precision arithmetic (Ch13_01) Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 5 of 6Daniel KusswurmDouble-precision arithmetic example #1 (Ch13_02)Double-precision arithmetic example #2 (Ch13_03)Floating-point compares and conversionsCompare instructions (Ch13_04)Conversion instructions (Ch13_05)Floating-point arrays and matricesArray programming example (Ch13_06)Matrix programming example (Ch13_07)Advanced floating-point programmingUsing C++ floating-point library functions (Ch13_08)Chapter 14 – Armv8-64 SIMD Integer ProgrammingPacked integer arithmeticAddition and subtraction (Ch14_01)Shift operations (Ch14_02)Multiplication (Ch14_03)Packed integer image processingPixel min/max (Ch14_04)Gray-scale pixel clipping (Ch14_05)Image statistics (Ch14_06)Chapter 15 – Armv8-64 SIMD Floating-Point ProgrammingPacked floating-point arithmeticAddition subtraction, multiplication, division (Ch15_01)Compares (Ch15_02)Conversions (Ch15_03)Packed floating-point arrays Correlation coefficient (Ch15_04) Image conversion – RGB to grayscale (Ch15_05)Packed floating-point matrices 4x4 matrix multiplication (Ch15_06) 4x4 matrix-vector multiplication (Ch15_07)Chapter 16 – Armv8-64 Advanced SIMD ProgrammingArmv8 microarchitecture overviewOptimization guidelinesSignal processingFMA convolution (Ch16_01) Modern Arm Assembly Language ProgrammingF:\ModArmAsm\Chapters\Outline\ModernArmAsm_Outline (V2).docx Page 6 of 6Daniel KusswurmVector and matrix operationsVector cross products (Ch16_02)Matrix-vector products (Ch16_03)Matrix inversion (Ch16_04)Appendix A – Source Code and Software Development ToolsSource codeHardware platformHost operating systemsSetup and configurationSoftware toolsg++gasmakeBuilding and executing the source code projectsAppendix B – References and Additional ResourcesArmv8 programming referencesAlgorithm referencesSoftware development resourcesAdditional resources
£49.49
PHI Learning Assembly Language Programming in GNU/Linux for
Book SynopsisThis book teaches Assembly language programming for Intel architectures on GNU/Linux, suitable for computer science/engineering courses. It covers processor execution models, programming guidelines, interfacing with C, IA32 instructions, MMX, SSE, input-output techniques, system calls, projects, and references.
£13.12