Chapter 1: Getting StartedA Bit of HistoryTools you NeedARM Assembly InstructionsThe GCC AssemblerA Very Small Example Chapter 2: My First Working Program
Add Two Numbers Print the ResultMakeRun the ProgramDebug the ProgramChapter 3: Basic Arithmetic Memory and Registers Loading and Saving RegistersAddition and SubtractionMultiplication and DivisionChapter 4: Controlling Program Flow Conditional Statements LoopsChapter 5: Debugging with GDB Examining Memory and Registers Single SteppingSetting Breakpoints Chapter 6: Linux Operating System Services Overview Calling ConventionExamplesChapter 7: Programming the GPIO Pins Introduction Using the Linux DriverUsing Mapped MemoryChapter 8: Interacting with C and Python Calling C Functions Calling Assembly from CEmbedding Assembly in CCalling C/Assembly from PythonChapter 9: Floating Point Operations Write Assembler to perform floating point calculations Division Data Formats Chapter 10: The Neon Coprocessor Explain Single Instruction Multiple Data (SIMD) programming Examples from AI and graphics Speed up your program. SIMD OpCodesMatrix ExampleGraphics ExampleChapter 11: Disassembling and Reverse Engineering GCC GDBGhidraChapter 12: Writing to the Screen and Reading the Keyboard The Keyboard Screen BuffersGraphics AlgorithmsChapter 13: 64-Bits Appendix The ARM Instruction Set Appendix Linux Operating System ServicesAppendix Binary Formats of Data TypesAppendix Assembler Directives
Stephen Smith is a software architect, located in Gibsons, BC, Canada. He's been developing software since high school, or way too many years to record. He is an expert in Artificial Intelligence and Assembly Language programming, earned his Advanced HAM Radio License, and enjoys mountain biking, hiking, and nature photography. He volunteers for Sunshine Coast Search and Rescue. He is the author of Raspberry Pi Assembly Language Programming: ARM Processor Coding, Programming with 64-Bit ARM Assembly Language: Single Board Computer Development for Raspberry Pi and Mobile Devices, and RP2040 Assembly Language Programming: ARM Cortex-M0+ on the Raspberry Pi Pico, all published by Apress. Also, he writes his popular technology blog, at smist08.wordpress.com.