Description

Book Synopsis

ARM designs the cores of microcontrollers which equip most "embedded systems" based on 32-bit processors. Cortex M3 is one of these designs, recently developed by ARM with microcontroller applications in mind. To conceive a particularly optimized piece of software (as is often the case in the world of embedded systems) it is often necessary to know how to program in an assembly language.

This book explains the basics of programming in an assembly language, while being based on the architecture of Cortex M3 in detail and developing many examples.

It is written for people who have never programmed in an assembly language and is thus didactic and progresses step by step by defining the concepts necessary to acquiring a good understanding of these techniques.



Table of Contents

Preface ix

Chapter 1. Overview of Cortex-M3 Architecture 1

1.1. Assembly language versus the assembler 1

1.2. The world of ARM 2

Chapter 2. The Core of Cortex-M3 15

2.1. Modes, privileges and states 15

2.2. Registers 17

Chapter 3. The Proper Use of Assembly Directives 25

3.1. The concept of the directive 25

3.2. Structure of a program 27

3.3. A section of code 29

3.4. The data section 36

3.5. Is that all? 39

Chapter 4. Operands of Instructions 47

4.1. The constant and renaming 48

4.2. Operands for common instructions 49

4.3. Memory access operands: addressing modes 57

Chapter 5. Instruction Set 63

5.1. Reading guide 63

5.2. Arithmetic instructions 66

5.3. Logical and bit manipulation instructions 70

5.4. Internal transfer instructions 75

5.5. Test instructions 76

5.6. Branch instructions 77

5.7. Load/store instructions 80

5.8. “System” instructions and others 85

Chapter 6. Algorithmic and Data Structures 87

6.1. Flowchart versus algorithm 87

6.2. Alternative structures 89

6.3. Iterative structures 98

6.4. Compound conditions 106

6.5. Data structure 111

Chapter 7. Internal Modularity 119

7.1. Detailing the concept of procedure 119

7.2. Procedure arguments 123

7.3. Local data 136

Chapter 8. Managing Exceptions 147

8.1. What happens during Reset? 148

8.2. Possible exceptions 151

8.3. Priority management 161

8.4. Entry and return in exception processing 167

Chapter 9. From Listing to Executable: External Modularity 173

9.1. External modularity 175

9.2. The role of the assembler 182

9.3. The role of the linker 188

9.4. The loader and the debugging unit 196

Appendices 199

Appendix A. Instruction Set – Alphabetical List 201

Appendix B. The SysTick Timer 209

Appendix C. Example of a “Bootstrap” File 217

Appendix D. The GNU Assembler 227

Bibliography 239

Index 241

Assembly Language Programming: ARM Cortex-M3

    Product form

    £132.00

    Includes FREE delivery

    RRP £138.95 – you save £6.95 (5%)

    Order before 4pm today for delivery by Mon 13 Jul 2026.

    A Hardback by Vincent Mahout

    10 in stock

      Trusted by thousands of customers. See 2,385+ Customer Reviews

      View other formats and editions of Assembly Language Programming: ARM Cortex-M3 by Vincent Mahout

      Publisher: ISTE Ltd and John Wiley & Sons Inc
      Publication Date: 27/01/2012
      ISBN13: 9781848213296, 978-1848213296
      ISBN10: 1848213298

      Description

      Book Synopsis

      ARM designs the cores of microcontrollers which equip most "embedded systems" based on 32-bit processors. Cortex M3 is one of these designs, recently developed by ARM with microcontroller applications in mind. To conceive a particularly optimized piece of software (as is often the case in the world of embedded systems) it is often necessary to know how to program in an assembly language.

      This book explains the basics of programming in an assembly language, while being based on the architecture of Cortex M3 in detail and developing many examples.

      It is written for people who have never programmed in an assembly language and is thus didactic and progresses step by step by defining the concepts necessary to acquiring a good understanding of these techniques.



      Table of Contents

      Preface ix

      Chapter 1. Overview of Cortex-M3 Architecture 1

      1.1. Assembly language versus the assembler 1

      1.2. The world of ARM 2

      Chapter 2. The Core of Cortex-M3 15

      2.1. Modes, privileges and states 15

      2.2. Registers 17

      Chapter 3. The Proper Use of Assembly Directives 25

      3.1. The concept of the directive 25

      3.2. Structure of a program 27

      3.3. A section of code 29

      3.4. The data section 36

      3.5. Is that all? 39

      Chapter 4. Operands of Instructions 47

      4.1. The constant and renaming 48

      4.2. Operands for common instructions 49

      4.3. Memory access operands: addressing modes 57

      Chapter 5. Instruction Set 63

      5.1. Reading guide 63

      5.2. Arithmetic instructions 66

      5.3. Logical and bit manipulation instructions 70

      5.4. Internal transfer instructions 75

      5.5. Test instructions 76

      5.6. Branch instructions 77

      5.7. Load/store instructions 80

      5.8. “System” instructions and others 85

      Chapter 6. Algorithmic and Data Structures 87

      6.1. Flowchart versus algorithm 87

      6.2. Alternative structures 89

      6.3. Iterative structures 98

      6.4. Compound conditions 106

      6.5. Data structure 111

      Chapter 7. Internal Modularity 119

      7.1. Detailing the concept of procedure 119

      7.2. Procedure arguments 123

      7.3. Local data 136

      Chapter 8. Managing Exceptions 147

      8.1. What happens during Reset? 148

      8.2. Possible exceptions 151

      8.3. Priority management 161

      8.4. Entry and return in exception processing 167

      Chapter 9. From Listing to Executable: External Modularity 173

      9.1. External modularity 175

      9.2. The role of the assembler 182

      9.3. The role of the linker 188

      9.4. The loader and the debugging unit 196

      Appendices 199

      Appendix A. Instruction Set – Alphabetical List 201

      Appendix B. The SysTick Timer 209

      Appendix C. Example of a “Bootstrap” File 217

      Appendix D. The GNU Assembler 227

      Bibliography 239

      Index 241

      Recently viewed products

      © 2026 Book Curl

        • American Express
        • Apple Pay
        • Diners Club
        • Discover
        • Google Pay
        • Maestro
        • Mastercard
        • PayPal
        • Shop Pay
        • Union Pay
        • Visa

        Login

        Forgot your password?

        Don't have an account yet?
        Create account