ARM assembly language: fundamentals and techniques / William Hohl, Christopher Hinds

By: Hohl, WilliamMaterial type: TextTextPublication details: Boca Raton: CRC, 2015Edition: 2nd edDescription: xxi, 431 pages : illustrations ; 24 cmISBN: 9781482229851 Subject(s): Assembly languages (Electronic computers) | Embedded computer systems -- Programming | COMPUTERS / General | COMPUTERS / Computer Engineering | MATHEMATICS / GeneralDDC classification: 006.22
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 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 Stack Pointers Processor Exception Sequence Entry Exit Exception Types Interrupts Exercises Memory-Mapped Peripherals Introduction The LPC2104 The UART The Memory Map Configuring the UART Writing the Data to the UART Putting the Code Together Running the Code The LPC2132 The D/A Converter The Memory Map Configuring the D/A Converter Generating a Sine Wave Putting the Code Together Running the Code The Tiva Launchpad General-Purpose I/O The Memory Map Configuring the GPIO Pins Turning on the LEDs Putting the Code Together Running the Code Exercises ARM, Thumb and Thumb-2 Instructions Introduction ARM and 16-Bit Thumb Instructions Differences between ARM and 16-Bit Thumb Thumb Implementation 32-Bit Thumb Instructions Switching between ARM and Thumb States How to Compile for Thumb Exercises Mixing C and Assembly Introduction Inline Assembler Inline Assembly Syntax Restrictions on Inline Assembly Operations Embedded Assembler Embedded Assembly Syntax Restrictions on Embedded Assembly Operations Calling between C and Assembly Exercises Appendix A: Running Code Composer Studio Appendix B: Running Keil Tools Appendix C: ASCII Character Codes
Tags from this library: No tags from this library for this title. Log in to add tags.
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Item type Current library Call number Status Date due Barcode Item holds
General Books General Books Central Library, Sikkim University
006.22 HOH/A (Browse shelf(Opens below)) Available 46098
Total holds: 0

Includes bibliographical references (pages 419-420) and index.

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 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 Stack Pointers Processor Exception Sequence Entry Exit Exception Types Interrupts Exercises Memory-Mapped Peripherals Introduction The LPC2104 The UART The Memory Map Configuring the UART Writing the Data to the UART Putting the Code Together Running the Code The LPC2132 The D/A Converter The Memory Map Configuring the D/A Converter Generating a Sine Wave Putting the Code Together Running the Code The Tiva Launchpad General-Purpose I/O The Memory Map Configuring the GPIO Pins Turning on the LEDs Putting the Code Together Running the Code Exercises ARM, Thumb and Thumb-2 Instructions Introduction ARM and 16-Bit Thumb Instructions Differences between ARM and 16-Bit Thumb Thumb Implementation 32-Bit Thumb Instructions Switching between ARM and Thumb States How to Compile for Thumb Exercises Mixing C and Assembly Introduction Inline Assembler Inline Assembly Syntax Restrictions on Inline Assembly Operations Embedded Assembler Embedded Assembly Syntax Restrictions on Embedded Assembly Operations Calling between C and Assembly Exercises Appendix A: Running Code Composer Studio Appendix B: Running Keil Tools Appendix C: ASCII Character Codes

There are no comments on this title.

to post a comment.
SIKKIM UNIVERSITY
University Portal | Contact Librarian | Library Portal

Powered by Koha