ARM有37个32位长的寄存器:
1个用做PC(Program Counter);
1个用做CPSR(Current Program Status Register);
5个用做SPSR(Saved Program Status Registers);
30个通用寄存器。
ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器均为32位的寄存器。6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,虽然均为32位,但目前只使用了其中的一部分。同时,ARM处理器又有7种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0~R14)、一至两个状态寄存器和程序计数器。在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。
当前处理器的模式决定着哪组寄存器可操作,任何模式都可以存取:
相应的r0~r12;
相应的r13(the stack pointer, sp)和r14(the link register, lr);
相应的r15(the program counter, pc);
相应的CPSR(current program status register, CPSR);
特权模式(除System模式)还可以存取;
相应的SPSR(saved program status register,SPSR)。