ARM Architecture Reference Manual
The purpose of this manual is to describe the ARM instruction set architecture including its high code density Thumb subset
ARM Architecture Reference Manual
THE ARM ARCHITECTURE REFERENCE MANUAL IS PROVIDED "AS IS" WITH NO WARRANTIES. EXPRESS IMPLIED OR STATUTORY
ARM Architecture Reference Manual
free worldwide licence to use this ARM Architecture Reference Manual for the purposes of developing; (i) software applications or operating systems which
ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition
5 avr. 2007 This ARM Architecture Reference Manual is provided “as is”. ARM makes no representations or warranties either express or implied
ARMv7-M Architecture Reference Manual
This ARM Architecture Reference Manual may include technical inaccuracies or typographical errors. To the extent not prohibited by law in no event will ARM be
ARMv7-M Architecture Reference Manual
This ARM Architecture Reference Manual is provided “as is”. ARM makes no representations or warranties either express or implied
ARM® Architecture Reference Manual
5 avr. 2007 Before ARMv7 there was only a single ARM Architecture Reference Manual with document number DDI 0100. The first.
ARM Architecture Reference Manual
THE ARM ARCHITECTURE REFERENCE MANUAL IS PROVIDED "AS IS" WITH NO WARRANTIES. EXPRESS IMPLIED OR STATUTORY
ARM Architecture Reference Manual ARMv8 for ARMv8-A
30 avr. 2013 ARM® Architecture Reference Manual ARMv7-A and ARMv7-R edition (ARM DDI 0406). •. ARM® Debug Interface Architecture Specification
ARM Architecture Reference Manual
free worldwide licence to use this ARM Architecture Reference Manual for the purposes of developing; (i) software applications or operating systems which
ARM DDI 0406B
ARMArchitecture
Reference Manual
ARM v7-A and ARM v7-R edition iiCopyright © 1996-1998, 2000, 2004-2008 ARM Limited. All rights reserved.ARM DDI 0406BARM Architecture Reference Manual
ARMv7-A and ARMv7-R edition
Copyright © 1996-1998, 2000, 2004-2008 ARM Limited. All rights reserved.Release Information
The following changes have been made to this document.From ARMv7, the ARM
architecture defines different architectural profiles and this edition of this manual describesonly the A and R profiles. For details of the documentation of the ARMv7-M profile see Further reading on page xx.
Before ARMv7 there was only a single ARM Architecture Reference Manual, with document number DDI 0100. The first
issue of this was in February 1996, and the final issue, Issue I, was in July 2005. For more information see Further reading
on page xx.Proprietary Notice
Words and logos marked with
or are registered trademarks or trademarks of ARM Limited in the EU and othercountries, except as otherwise stated below in this proprietary notice. Other brands and names mentioned herein may be
the trademarks of their respective owners.Neither the whole nor any part of the information contained in, or the product described in, this document may be adapted
or reproduced in any material form except with the prior written permission of the copyright holder.The product described in this document is subject to continuous developments and improvements. All particulars of the
product and its use contained in this document are given by ARM in good faith. However, all warranties implied or
expressed, including but not limited to implied warranties of merchantability, or fitness for purpose, are excluded.
1. Subject to the provisions set out below, ARM hereby grants to you a perpetual, non-exclusive, nontransferable, royalty
free, worldwide licence to use this ARM Architecture Reference Manual for the purposes of developing; (i) software
applications or operating systems which are targeted to run on microprocessor cores distributed under licence from ARM;
(ii) tools which are designed to develop software programs which are targeted to run on microprocessor cores distributed
under licence from ARM; (iii) or having developed integrated circuits which incorporate a microprocessor core
manufactured under licence from ARM.2. Except as expressly licensed in Clause 1 you acquire no right, title or interest in the ARM Architecture Reference
Manual, or any Intellectual Property therein. In no event shall the licences granted in Clause 1, be construed as granting
you expressly or by implication, estoppel or otherwise, licences to any ARM technology other than the ARM Architecture
Reference Manual. The licence grant in Clause 1 expressly excludes any rights for you to use or take into use any ARM
patents. No right is granted to you under the provisions of Clause 1 to; (i) use the ARM Architecture Reference Manual
for the purposes of developing or having developed microprocessor cores or models thereof which are compatible in
whole or part with either or both the instructions or programmers' models described in this ARM Architecture Reference
Manual; or (ii) develop or have developed models of any microprocessor cores designed by or for ARM; or (iii) distribute
Change History
Date Issue Confidentiality Change
05 April 2007 A Non-Confidential New edition for ARMv7-A and ARMv7-R architecture profiles.
Document number changed from ARM DDI 0100 to ARM DDI 0406 and contents restructured.29 April 2008 B Non-Confidential Addition of the VFP Half-precision and Multiprocessing Extensions, and many clarifications
and enhancements. ARM DDI 0406BCopyright © 1996-1998, 2000, 2004-2008 ARM Limited. All rights reserved.iiiin whole or in part this ARM Architecture Reference Manual to third parties, other than to your subcontractors for the
purposes of having developed products in accordance with the licence grant in Clause 1 without the express written
permission of ARM; or (iv) translate or have translated this ARM Architecture Reference Manual into any other
languages.3. THE ARM ARCHITECTURE REFERENCE MANUAL IS PROVIDED "AS IS" WITH NO WARRANTIES
EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF SATISFACTORY QUALITY, NONINFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE.4. No licence, express, implied or otherwise, is granted to LICENSEE, under the provisions of Clause 1, to use the ARM
tradename, in connection with the use of the ARM Architecture Reference Manual or any products based thereon.
Nothing in Clause 1 shall be construed as authority for you to make any representations on behalf of ARM in respect of
the ARM Architecture Reference Manual or any products based thereon.Where the term ARM is used to refer to the company it means "ARM or any of its subsidiaries as appropriate".
NoteThe term ARM is also used to refer to versions of the ARM architecture, for example ARMv6 refers to version 6 of the
ARM architecture. The context makes it clear when the term is used in this way. Copyright © 1996-1998, 2000, 2004-2008 ARM Limited110 Fulbourn Road Cambridge, England CB1 9NJ
Restricted Rights Legend: Use, duplication or disclosure by the United States Government is subject to the restrictions
set forth in DFARS 252.227-7013 (c)(1)(ii) and FAR 52.227-19.This document is Non-Confidential. The right to use, copy and disclose this document is subject to the licence set out
above. ivCopyright © 1996-1998, 2000, 2004-2008 ARM Limited. All rights reserved.ARM DDI 0406B ARM DDI 0406BCopyright © 1996-1998, 2000, 2004-2008 ARM Limited. All rights reserved.vContents
ARM Architecture Reference Manual
ARMv7-A and ARMv7-R edition
Preface
About this manual ............................................................................... xiv
Using this manual ................................................................................ xv
Conventions ....................................................................................... xviii
Further reading .................................................................................... xx
Feedback ............................................................................................ xxi
Part A Application Level Architecture
Chapter A1 Introduction to the ARM Architecture
A1.1 About the ARM architecture ............................................................. A1-2 A1.2 The ARM and Thumb instruction sets .............................................. A1-3 A1.3 Architecture versions, profiles, and variants .................................... A1-4A1.4 Architecture extensions .................................................................... A1-6
A1.5 The ARM memory model ................................................................. A1-7A1.6 Debug .............................................................................................. A1-8
Chapter A2 Application Level Programmers' Model
A2.1 About the Application level programmers' model ............................. A2-2Contents
viCopyright © 1996-1998, 2000, 2004-2008 ARM Limited. All rights reserved.ARM DDI 0406B A2.2 ARM core data types and arithmetic ................................................ A2-3A2.3 ARM core registers ........................................................................ A2-11
A2.4 The Application Program Status Register (APSR) ......................... A2-14A2.5 Execution state registers ................................................................ A2-15
A2.6 Advanced SIMD and VFP extensions ............................................ A2-20 A2.7 Floating-point data types and arithmetic ........................................ A2-32 A2.8 Polynomial arithmetic over {0,1} .................................................... A2-67A2.9 Coprocessor support ...................................................................... A2-68
A2.10 Execution environment support ..................................................... A2-69 A2.11 Exceptions, debug events and checks ........................................... A2-81Chapter A3 Application Level Memory Model
A3.1 Address space ................................................................................. A3-2
A3.2 Alignment support ............................................................................ A3-4
A3.3 Endian support ................................................................................. A3-7
A3.4 Synchronization and semaphores .................................................. A3-12 A3.5 Memory types and attributes and the memory order model .......... A3-24A3.6 Access rights .................................................................................. A3-38
A3.7 Virtual and physical addressing ..................................................... A3-40 A3.8 Memory access order .................................................................... A3-41 A3.9 Caches and memory hierarchy ...................................................... A3-51Chapter A4 The Instruction Sets
A4.1 About the instruction sets ................................................................. A4-2
A4.2 Unified Assembler Language ........................................................... A4-4A4.3 Branch instructions .......................................................................... A4-7
A4.4 Data-processing instructions ............................................................ A4-8 A4.5 Status register access instructions ................................................ A4-18A4.6 Load/store instructions ................................................................... A4-19
A4.7 Load/store multiple instructions ..................................................... A4-22 A4.8 Miscellaneous instructions ............................................................. A4-23 A4.9 Exception-generating and exception-handling instructions ............ A4-24A4.10 Coprocessor instructions ............................................................... A4-25
A4.11 Advanced SIMD and VFP load/store instructions .......................... A4-26 A4.12 Advanced SIMD and VFP register transfer instructions ................. A4-29 A4.13 Advanced SIMD data-processing operations ................................. A4-30 A4.14 VFP data-processing instructions .................................................. A4-38Chapter A5 ARM Instruction Set Encoding
A5.1 ARM instruction set encoding .......................................................... A5-2 A5.2 Data-processing and miscellaneous instructions ............................. A5-4 A5.3 Load/store word and unsigned byte ............................................... A5-19A5.4 Media instructions .......................................................................... A5-21
A5.5 Branch, branch with link, and block data transfer .......................... A5-27 A5.6 Supervisor Call, and coprocessor instructions ............................... A5-28 A5.7 Unconditional instructions .............................................................. A5-30Contents
ARM DDI 0406BCopyright © 1996-1998, 2000, 2004-2008 ARM Limited. All rights reserved.viiChapter A6 Thumb Instruction Set Encoding
A6.1 Thumb instruction set encoding ....................................................... A6-2 A6.2 16-bit Thumb instruction encoding ................................................... A6-6 A6.3 32-bit Thumb instruction encoding ................................................. A6-14 Chapter A7 Advanced SIMD and VFP Instruction EncodingA7.1 Overview .......................................................................................... A7-2
A7.2 Advanced SIMD and VFP instruction syntax ................................... A7-3A7.3 Register encoding ............................................................................ A7-8
A7.4 Advanced SIMD data-processing instructions ............................... A7-10 A7.5 VFP data-processing instructions .................................................. A7-24 A7.6 Extension register load/store instructions ...................................... A7-26 A7.7 Advanced SIMD element or structure load/store instructions ........ A7-27 A7.8 8, 16, and 32-bit transfer between ARM core and extension registers ..... A7-31 A7.9 64-bit transfers between ARM core and extension registers ......... A7-32Chapter A8 Instruction Details
A8.1 Format of instruction descriptions .................................................... A8-2 A8.2 Standard assembler syntax fields .................................................... A8-7A8.3 Conditional execution ....................................................................... A8-8
A8.4 Shifts applied to a register ............................................................. A8-10
A8.5 Memory accesses .......................................................................... A8-13
A8.6 Alphabetical list of instructions ....................................................... A8-14Chapter A9 ThumbEE
A9.1 The ThumbEE instruction set ........................................................... A9-2 A9.2 ThumbEE instruction set encoding .................................................. A9-6 A9.3 Additional instructions in Thumb and ThumbEE instruction sets ..... A9-7 A9.4 ThumbEE instructions with modified behavior ................................. A9-8 A9.5 Additional ThumbEE instructions ................................................... A9-14Part B System Level Architecture
Chapter B1 The System Level Programmers' Model
B1.1 About the system level programmers' model ................................... B1-2 B1.2 System level concepts and terminology ........................................... B1-3 B1.3 ARM processor modes and core registers ....................................... B1-6B1.4 Instruction set states ...................................................................... B1-23
B1.5 The Security Extensions ................................................................ B1-25B1.6 Exceptions ..................................................................................... B1-30
B1.7 Coprocessors and system control .................................................. B1-62 B1.8 Advanced SIMD and floating-point support .................................... B1-64 B1.9 Execution environment support ..................................................... B1-73Contents
viiiCopyright © 1996-1998, 2000, 2004-2008 ARM Limited. All rights reserved.ARM DDI 0406B Chapter B2 Common Memory System Architecture Features B2.1 About the memory system architecture ........................................... B2-2B2.2 Caches ............................................................................................. B2-3
B2.3 Implementation defined memory system features ......................... B2-27 B2.4 Pseudocode details of general memory system operations .......... B2-29 Chapter B3 Virtual Memory System Architecture (VMSA)B3.1 About the VMSA .............................................................................. B3-2
B3.2 Memory access sequence ............................................................... B3-4B3.3 Translation tables ............................................................................. B3-7
B3.4 Address mapping restrictions ......................................................... B3-23 B3.5 Secure and Non-secure address spaces ....................................... B3-26 B3.6 Memory access control .................................................................. B3-28 B3.7 Memory region attributes ............................................................... B3-32 B3.8 VMSA memory aborts .................................................................... B3-40 B3.9 Fault Status and Fault Address registers in a VMSA implementation ...... B3-48 B3.10 Translation Lookaside Buffers (TLBs) ............................................ B3-54 B3.11 Virtual Address to Physical Address translation operations ........... B3-63 B3.12 CP15 registers for a VMSA implementation .................................. B3-64 B3.13 Pseudocode details of VMSA memory system operations .......... B3-156 Chapter B4 Protected Memory System Architecture (PMSA)B4.1 About the PMSA .............................................................................. B4-2
B4.2 Memory access control .................................................................... B4-9 B4.3 Memory region attributes ............................................................... B4-11 B4.4 PMSA memory aborts .................................................................... B4-13 B4.5 Fault Status and Fault Address registers in a PMSA implementation ...... B4-18 B4.6 CP15 registers for a PMSA implementation .................................. B4-22 B4.7 Pseudocode details of PMSA memory system operations ............ B4-79Chapter B5 The CPUID Identification Scheme
B5.1 Introduction to the CPUID scheme .................................................. B5-2B5.2 The CPUID registers ........................................................................ B5-4
B5.3 Advanced SIMD and VFP feature identification registers .............. B5-34Chapter B6 System Instructions
B6.1 Alphabetical list of instructions ......................................................... B6-2
Part C Debug Architecture
Chapter C1 Introduction to the ARM Debug Architecture C1.1 Scope of part C of this manual ......................................................... C1-2 C1.2 About the ARM Debug architecture ................................................. C1-3Contents
ARM DDI 0406BCopyright © 1996-1998, 2000, 2004-2008 ARM Limited. All rights reserved.ix C1.3 Security Extensions and debug ....................................................... C1-8C1.4 Register interfaces ........................................................................... C1-9
Chapter C2 Invasive Debug Authentication
C2.1 About invasive debug authentication ............................................... C2-2Chapter C3 Debug Events
C3.1 About debug events ......................................................................... C3-2
C3.2 Software debug events .................................................................... C3-5
C3.3 Halting debug events ..................................................................... C3-38
C3.4 Generation of debug events ........................................................... C3-40C3.5 Debug event prioritization .............................................................. C3-43
Chapter C4 Debug Exceptions
C4.1 About debug exceptions .................................................................. C4-2 C4.2 Effects of debug exceptions on CP15 registers and the DBGWFAR ........ C4-4Chapter C5 Debug State
C5.1 About Debug state ........................................................................... C5-2
C5.2 Entering Debug state ....................................................................... C5-3
C5.3 Behavior of the PC and CPSR in Debug state ................................. C5-7 C5.4 Executing instructions in Debug state .............................................. C5-9C5.5 Privilege in Debug state ................................................................. C5-13
C5.6 Behavior of non-invasive debug in Debug state ............................. C5-19 C5.7 Exceptions in Debug state ............................................................. C5-20 C5.8 Memory system behavior in Debug state ....................................... C5-24C5.9 Leaving Debug state ...................................................................... C5-28
Chapter C6 Debug Register Interfaces
C6.1 About the debug register interfaces ................................................. C6-2 C6.2 Reset and power-down support ....................................................... C6-4C6.3 Debug register map ....................................................................... C6-18
C6.4 Synchronization of debug register updates .................................... C6-24C6.5 Access permissions ....................................................................... C6-26
C6.6 The CP14 debug register interfaces .............................................. C6-32 C6.7 The memory-mapped and recommended external debug interfaces ....... C6-43Chapter C7 Non-invasive Debug Authentication
C7.1 About non-invasive debug authentication ........................................ C7-2 C7.2 v7 Debug non-invasive debug authentication .................................. C7-4 C7.3 Effects of non-invasive debug authentication .................................. C7-6 C7.4 ARMv6 non-invasive debug authentication ...................................... C7-8Contents
xCopyright © 1996-1998, 2000, 2004-2008 ARM Limited. All rights reserved.ARM DDI 0406BChapter C8 Sample-based Profiling
C8.1 Program Counter sampling .............................................................. C8-2Chapter C9 Performance Monitors
C9.1 About the performance monitors ...................................................... C9-2 C9.2 Status in the ARM architecture ........................................................ C9-4 C9.3 Accuracy of the performance monitors ............................................ C9-5C9.4 Behavior on overflow ....................................................................... C9-6
C9.5 Interaction with Security Extensions ................................................ C9-7C9.6 Interaction with trace ........................................................................ C9-8
C9.7 Interaction with power saving operations ......................................... C9-9C9.8 CP15 c9 register map .................................................................... C9-10
C9.9 Access permissions ....................................................................... C9-12
C9.10 Event numbers ............................................................................... C9-13
Chapter C10 Debug Registers Reference
C10.1 Accessing the debug registers ....................................................... C10-2 C10.2 Debug identification registers ......................................................... C10-3 C10.3 Control and status registers ......................................................... C10-10 C10.4 Instruction and data transfer registers ......................................... C10-40 C10.5 Software debug event registers ................................................... C10-48 C10.6 OS Save and Restore registers, v7 Debug only .......................... C10-75 C10.7 Memory system control registers ................................................. C10-80 C10.8 Management registers, ARMv7 only ............................................ C10-88 C10.9 Performance monitor registers ................................................... C10-105Appendix A Recommended External Debug Interface
A.1 System integration signals ......................................................... AppxA-2 A.2 Recommended debug slave port ............................................. AppxA-13 Appendix B Common VFP Subarchitecture Specification B.1 Scope of this appendix ............................................................... AppxB-2 B.2 Introduction to the Common VFP subarchitecture ..................... AppxB-3 B.3 Exception processing ................................................................. AppxB-6 B.4 Support code requirements ...................................................... AppxB-11 B.5 Context switching ..................................................................... AppxB-14 B.6 Subarchitecture additions to the VFP system registers ........... AppxB-15 B.7 Version 1 of the Common VFP subarchitecture ....................... AppxB-23 B.8 Version 2 of the Common VFP subarchitecture ....................... AppxB-24Appendix C Legacy Instruction Mnemonics
C.1 Thumb instruction mnemonics ................................................... AppxC-2 C.2 Pre-UAL pseudo-instruction NOP .............................................. AppxC-3Contents
ARM DDI 0406BCopyright © 1996-1998, 2000, 2004-2008 ARM Limited. All rights reserved.xiAppendix D Deprecated and Obsolete Features
D.1 Deprecated features .................................................................. AppxD-2 D.2 Deprecated terminology ............................................................. AppxD-5D.3 Obsolete features ....................................................................... AppxD-6
quotesdbs_dbs14.pdfusesText_20[PDF] arm assembly for embedded applications pdf
[PDF] arm assembly language instruction set
[PDF] arm assembly language instructions list
[PDF] arm assembly language pdf
[PDF] arm assembly language programming & architecture mazidi pdf
[PDF] arm assembly language programming & architecture pdf
[PDF] arm assembly language programming examples
[PDF] arm assembly language reference
[PDF] arm assembly opcodes
[PDF] arm bhi
[PDF] arm cortex opcodes
[PDF] arm instruction decoder
[PDF] arm instruction opcodes
[PDF] arm instruction set cheat sheet