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.
Table of Contents
1. Introduction 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