Modern Assembly Language Programming with the ARM Processor
- 2nd Edition - May 22, 2024
- Author: Larry D Pyeatt
- Language: English
- Paperback ISBN:9 7 8 - 0 - 4 4 3 - 1 4 1 1 4 - 0
- eBook ISBN:9 7 8 - 0 - 4 4 3 - 1 4 1 1 5 - 7
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 conce… Read more
Purchase options
Institutional subscription on ScienceDirect
Request a sales quoteModern 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.
- 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
Computer science or engineering students taking a course in assembly language using the ARM processor, Professional embedded systems engineers
- Cover image
- Title page
- Table of Contents
- Copyright
- List of tables
- List of figures
- List of listings
- Preface
- Choice of processor family
- General approach
- Part 1: Assembly as a language
- Chapter 1: Introduction
- 1.1. Reasons to learn assembly
- 1.2. The ARM processor
- 1.3. Computer data
- 1.4. Memory layout of an executing program
- 1.5. Chapter summary
- Exercises
- Chapter 2: GNU assembly syntax
- 2.1. Structure of an assembly program
- 2.2. What the assembler does
- 2.3. GNU assembly directives
- 2.4. Chapter summary
- Exercises
- Chapter 3: Load/store and branch instructions
- 3.1. CPU components and data paths
- 3.2. ARM user registers
- 3.3. Instruction components
- 3.4. Load/store instructions
- 3.5. Branch instructions
- 3.6. Pseudo-instructions
- 3.7. Chapter summary
- Exercises
- Chapter 4: Data processing and other instructions
- 4.1. Data processing instructions
- 4.2. Special instructions
- 4.3. Pseudo-instructions
- 4.4. Alphabetized list of ARM instructions
- 4.5. Chapter summary
- Exercises
- Chapter 5: Structured programming
- 5.1. Sequencing
- 5.2. Selection
- 5.3. Iteration
- 5.4. Subroutines
- 5.5. Aggregate data types
- 5.6. Chapter summary
- Exercises
- Chapter 6: Abstract data types
- 6.1. ADTs in assembly language
- 6.2. Word frequency counts
- 6.3. Ethics case study: Therac-25
- 6.4. Chapter summary
- Exercises
- Part 2: Performance mathematics
- Chapter 7: Integer mathematics
- 7.1. Subtraction by addition
- 7.2. Binary multiplication
- 7.3. Binary division
- 7.4. Big integer ADT
- 7.5. Chapter summary
- Exercises
- Chapter 8: Non-integral mathematics
- 8.1. Base conversion of fractional numbers
- 8.2. Fractions and bases
- 8.3. Fixed-point numbers
- 8.4. Fixed-point operations
- 8.5. Floating point numbers
- 8.6. Floating point operations
- 8.7. Computing sine and cosine
- 8.8. Ethics case study: Patriot Missile failure
- 8.9. Chapter summary
- Exercises
- Chapter 9: The ARM vector floating point coprocessor
- 9.1. Vector floating point overview
- 9.2. Floating point status and control register
- 9.3. Register usage rules
- 9.4. Load/store instructions
- 9.5. Data processing instructions
- 9.6. Data movement instructions
- 9.7. Data conversion instructions
- 9.8. Floating point sine function
- 9.9. Alphabetized list of VFP instructions
- 9.10. Chapter summary
- Exercises
- Chapter 10: The ARM NEON extensions
- 10.1. NEON intrinsics
- 10.2. Instruction syntax
- 10.3. Load and store instructions
- 10.4. Data movement instructions
- 10.5. Data conversion
- 10.6. Comparison operations
- 10.7. Bitwise logical operations
- 10.8. Shift instructions
- 10.9. Arithmetic instructions
- 10.10. Multiplication and division
- 10.11. Pseudo-instructions
- 10.12. Performance mathematics: a final look at sine
- 10.13. Alphabetized list of NEON instructions
- 10.14. Chapter summary
- Exercises
- Part 3: Embedded systems
- Chapter 11: The ARM Thumb extensions
- 11.1. GNU assembler directives
- 11.2. General characteristics of Thumb
- 11.3. Thumb 16-bit versions of existing instructions
- 11.4. Additional Thumb instructions
- 11.5. Alphabetized list of Thumb instructions
- 11.6. Chapter summary
- Exercises
- Chapter 12: Devices
- 12.1. Accessing devices directly under Linux
- 12.2. General purpose digital input/output
- 12.3. Chapter summary
- Exercises
- Chapter 13: Pulse modulation
- 13.1. Pulse density modulation
- 13.2. Pulse width modulation
- 13.3. Raspberry Pi PWM device
- 13.4. pcDuino PWM device
- 13.5. Chapter summary
- Exercises
- Chapter 14: Common system devices
- 14.1. Clock management device
- 14.2. Serial communications
- 14.3. Chapter summary
- Exercises
- Chapter 15: Running without an operating system
- 15.1. ARM CPU modes
- 15.2. Exception processing
- 15.3. The boot process
- 15.4. Writing a bare metal program
- 15.5. Using an interrupt
- 15.6. ARM processor profiles
- 15.7. Chapter summary
- Exercises
- Index
- No. of pages: 552
- Language: English
- Edition: 2
- Published: May 22, 2024
- Imprint: Newnes
- Paperback ISBN: 9780443141140
- eBook ISBN: 9780443141157
LP