Programmer’s Model

General registers and program counter

System and User

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

R15

FIQ

R0

R1

R2

R3

R4

R5

R6

R7

R8_fiq

R9_fiq

R10_fiq

R11_fiq

R12_fiq

R13_fiq

R14_fiq

R15 (PC)

Supervisor

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13_svc

R14_svc

R15 (PC)

Abort

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13_abt

R14_abt

R15 (PC)

IRQ

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13_irq

R14_irq

R15 (PC)

Undefined

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13_und

R14_und

R15 (PC)

CPSRCPSR SPSR_fiq

= banked register

Note

Program status registers

CPSR

 

CPSR

 

CPSR

 

CPSR

 

 

 

 

 

 

 

SPSR_svc

 

SPSR_abt

 

SPSR_irq

 

SPSR_und

Figure 2-3 Register organization

For 16-bit Thumb instructions, the high registers, R8–R15, are not part of the standard register set. You can use special variants of the MOV instruction to transfer a value from a low register, in the range R0–R7, to a high register, and from a high register to a low register. The CMP instruction enables you to compare high register values with low register values. The ADD instruction enables you to add high register values to low register values. For more information, see the ARM Architecture Reference Manual.

ARM DDI 0363E

Copyright © 2009 ARM Limited. All rights reserved.

2-9

ID013010

Non-Confidential, Unrestricted Access

 

Page 55
Image 55
ARM R4F, r1p3 manual General registers and program counter