Disassembly
This section will discuss assembly code and how a so-called disassembly can help you to find out what exactly is happening on your target device.
Assembly is a low-level programming language that is closely related to machine code. It uses symbols and mnemonics to represent machine code instructions and to make it more understandable for humans than raw machine code.
Each computer architecture comes with its own set of assembly instructions, making assembly code not very portable.
Arm Cortex-M target devices support the Arm instruction set architecture (ISA). In this book's examples, we will use Armv7-M and Armv8-M, which are both 32-bit architectures. The standout feature of these devices is the Thumb-2 instruction set, which combines 16-bit and 32-bit instructions for optimal performance-to-code size ratio, single-cycle execution for most instructions, and support for deterministic hardware interrupts via a vector table [1][2].
What is a disassembly?
A disassembly is...