Modern Assembly Language Programming with the ARM Processor, Second Edition is a tutorial-based book on assembly language programming using the ARM processor. It presents the concepts of assembly language programming in different ways, slowly building from simple examples towards complex programming on bare-metal embedded systems. The ARM processor was chosen as it has fewer instructions and irregular addressing rules to learn than most other architectures, allowing more time to spend on teaching assembly language programming concepts and good programming practice.
Careful consideration is given to topics that students struggle to grasp, such as registers vs. memory and the relationship between pointers and addresses, recursion, and non-integral binary mathematics. A whole chapter is dedicated to structured programming principles. Concepts are illustrated and reinforced with many tested and debugged assembly and C source listings. The book also covers advanced topics such as fixed- and floating-point mathematics, optimization, and the ARM VFP and NEONTM extensions.
Key Features
- Includes concepts that are illustrated and reinforced with a large number of tested and debugged assembly and C source listing
- Intended for use on very low-cost platforms, such as the Raspberry Pi or pcDuino, but with the support of a full Linux operating system and development tools
- Includes discussions of advanced topics, such as fixed and floating point mathematics, optimization, and the ARM VFP and NEON extensions
- Explores ethical issues involving safety-critical applications
- Features updated content, including a new chapter on the Thumb instruction set
2. GNU Assembly Syntax
3. Load/Store and Branch Instructions
4. Data Processing and Other Instructions
5. Structured Programming
6. Abstract Data Types
7. Integer Mathematics
8. Non-Integral Mathematics
9. The ARM Vector Floating Point Coprocessor
10. The ARM NEON Extensions
11. Devices
12. Pulse Modulation
13. Common System Devices
14. Running Without an Operating System
Computer science or engineering students taking a course in assembly language using the ARM processor, Professional embedded systems engineers