ARM Registers

The ARM microprocessor has 16 general-purpose registers. THUMB has eight general-purpose registers, R0-R7, and access to the high registers, R8-R15.

The following table shows the assigned register roles.

Register Description
R0 Argument1, Return Value, Temporary Register.
R1 Argument2, Second 32-bits if double/int Return Value, Temporary Register.
R2-R3 Arguments, Temporary Registers.
R4-R10 Permanent Registers. R7 is THUMB Frame Pointer.
R11 ARM Frame Pointer - Permanent Register.
R12 Temporary Register.
R13 Stack Pointer, Permanent Register.
R14 Link Register, Permanent Register.
R15 Program Counter.

Note   Registers R0 through R3 hold the first four words of incoming arguments. The microprocessor constructs remaining arguments in the calling function's argument build area, which does not provide space into which R0 through R3 may be spilled.

See Also

ARM Calling Sequence Specification | What's New for the ARM Compiler | ARM Stack Frame Layout | ARM Parameter Passing | ARM Return Values | ARM Prolog and Epilog | ARM pdata Structures | ARM Assembler Macros

 Last updated on Thursday, April 08, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.