ARM assembly language : fundamentals and techniques /: fundamentals and techniques. (2014)
- Record Type:
- Book
- Title:
- ARM assembly language : fundamentals and techniques /: fundamentals and techniques. (2014)
- Main Title:
- ARM assembly language : fundamentals and techniques
- Further Information:
- Note: William Hohl.
- Authors:
- Hohl, William
Hinds, Christopher - Contents:
- Preface Authors An Overview of Computing Systems Introduction History of RISC ARM Begins The Creation of ARM Ltd ARM Today The Cortex Family The Computing Device Number Systems Representations of Numbers and Characters Integer Representations Floating-Point Representations Character Representations Translating Bits to Commands The Tools Open Source Tools Keil (ARM) Code Composer Studio Useful Documentation Exercises The Programmer’s Model Introduction Data Types ARM7TDMI Processor Modes Registers The Vector Table Cortex-M4 Processor Modes Registers The Vector Table Exercises Introduction to Instruction Sets: v4T and v7-M Introduction ARM, Thumb, and Thumb-2 Instructions Program 1: Shifting Data Running the Code Examining Register and Memory Contents Program 2: Factorial Calculation Program 3: Swapping Register Contents Program 4: Playing with Floating-Point Numbers Program 5: Moving Values between Integer and Floating-Point Registers Programming Guidelines Exercises Assembler Rules and Directives Introduction Structure of Assembly Language Modules Predefined Register Names Frequently Used Directives Defining a Block of Data or Code Register Name Definition Equating a Symbol to a Numeric Constant Declaring an Entry Point Allocating Memory and Specifying Contents Aligning Data or Code to Appropriate Boundaries Reserving a Block of Memory Assigning Literal Pool Origins Ending a Source File Macros Miscellaneous Assembler Features Assembler Operators Math Functions in CCSPreface Authors An Overview of Computing Systems Introduction History of RISC ARM Begins The Creation of ARM Ltd ARM Today The Cortex Family The Computing Device Number Systems Representations of Numbers and Characters Integer Representations Floating-Point Representations Character Representations Translating Bits to Commands The Tools Open Source Tools Keil (ARM) Code Composer Studio Useful Documentation Exercises The Programmer’s Model Introduction Data Types ARM7TDMI Processor Modes Registers The Vector Table Cortex-M4 Processor Modes Registers The Vector Table Exercises Introduction to Instruction Sets: v4T and v7-M Introduction ARM, Thumb, and Thumb-2 Instructions Program 1: Shifting Data Running the Code Examining Register and Memory Contents Program 2: Factorial Calculation Program 3: Swapping Register Contents Program 4: Playing with Floating-Point Numbers Program 5: Moving Values between Integer and Floating-Point Registers Programming Guidelines Exercises Assembler Rules and Directives Introduction Structure of Assembly Language Modules Predefined Register Names Frequently Used Directives Defining a Block of Data or Code Register Name Definition Equating a Symbol to a Numeric Constant Declaring an Entry Point Allocating Memory and Specifying Contents Aligning Data or Code to Appropriate Boundaries Reserving a Block of Memory Assigning Literal Pool Origins Ending a Source File Macros Miscellaneous Assembler Features Assembler Operators Math Functions in CCS Exercises Loads, Stores, and Addressing Introduction Memory Loads and Stores: The Instructions Operand Addressing Pre-Indexed Addressing Post-Indexed Addressing Endianness Changing Endianness Defining Memory Areas Bit-Banded Memory Memory Considerations Exercises Constants and Literal Pools Introduction The ARM Rotation Scheme Loading Constants into Registers Loading Constants with MOVW, MOVT Loading Addresses into Registers Exercises Integer Logic and Arithmetic Introduction Flags and Their Use The N Flag The V Flag The Z Flag The C Flag Comparison Instructions Data Processing Operations Boolean Operations Shifts and Rotates Addition/Subtraction Saturated Math Operations Multiplication Multiplication by a Constant Division DSP Extensions Bit Manipulation Instructions Fractional Notation Exercises Branches and Loops Introduction Branching Branching (ARM7TDMI) Version 7-M Branches Looping While Loops For Loops Do-While Loops Conditional Execution v4T Conditional Execution v7-M Conditional Execution: The IT Block Straight-Line Coding Exercises Introduction to Floating-Point: Basics, Data Types, and Data Transfer Introduction A Brief History of Floating-Point in Computing The Contribution of Floating-Point to the Embedded Processor Floating-Point Data Types The Space of Floating-Point Representable Values Floating-Point Representable Values Normal Values Subnormal Values Zeros Infinities Not-a-Numbers (NaNs) The Floating-Point Register File of the Cortex-M4 FPU Control Registers The Floating-Point Status and Control Register, FPSCR The Coprocessor Access Control Register, CPACR Loading Data into Floating-Point Registers Floating-Point Loads and Stores: The Instructions The VMOV instruction Conversions between Half-Precision and Single-Precision Conversions to Non-Floating-Point Formats Conversions between Integer and Floating-Point Conversions between Fixed-Point and Floating-Point Exercises Introduction to Floating-Point: Rounding and Exceptions Introduction Rounding Introduction to Rounding Modes in the IEEE 754-2008 Specification The roundTiesToEven (RNE) Rounding Mode The Directed Rounding Modes Rounding Mode Summary Exceptions Introduction to Floating-Point Exceptions Exception Handling Division by Zero Invalid Operation Overflow Underflow Inexact Result Algebraic Laws and Floating-Point Normalization and Cancelation Exercises Floating-Point Data-Processing Instructions Introduction Floating-Point Data-Processing Instruction Syntax Instruction Summary Flags and Their Use Comparison Instructions The N Flag The Z Flag The C Flag The V Flag Predicated Instructions, or the Use of the Flags A Word about the IT Instruction Two Special Modes Flush-to-Zero Mode Default NaN Non-Arithmetic Instructions Absolute Value Negate Arithmetic Instructions Addition/Subtraction Multiplication and Multiply–Accumulate Division and Square Root Putting It All Together: A Coding Example Exercises Tables Introduction Integer Lookup Tables Floating-Point Lookup Tables Binary Searches Exercises Subroutines and Stacks Introduction The Stack LDM/STM Instructions PUSH and POP Full/Empty Ascending/Descending Stacks Subroutines Passing Parameters to Subroutines Passing Parameters in Registers Passing Parameters by Reference Passing Parameters on the Stack The ARM APCS Exercises Exception Handling: ARM7TDMI Introduction Interrupts Error Conditions Processor Exception Sequence The Vector Table Exception Handlers Exception Priorities Procedures for Handling Exceptions Reset Exceptions Undefined Instructions Interrupts Aborts SVCs Exercises Exception Handling: v7-M Introduction Operation Modes and Privilege Levels The Vector Table … (more)
- Edition:
- Second edition
- Publisher Details:
- Boca Raton : CRC Press
- Publication Date:
- 2014
- Extent:
- 1 online resource, illustrations (black and white)
- Subjects:
- 005.262
Assembly languages (Electronic computers)
Embedded computer systems -- Programming - Languages:
- English
- ISBNs:
- 9781482229882
9781482229868
9781482229875 - Related ISBNs:
- 9781482229851
- Notes:
- Note: Includes bibliographical references and index.
Note: Description based on CIP data; item not viewed. - Access Rights:
- Legal Deposit; Only available on premises controlled by the deposit library and to one user at any one time; The Legal Deposit Libraries (Non-Print Works) Regulations (UK).
- Access Usage:
- Restricted: Printing from this resource is governed by The Legal Deposit Libraries (Non-Print Works) Regulations (UK) and UK copyright law currently in force.
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library HMNTS - ELD.DS.140483
- Ingest File:
- 02_095.xml