About the ARM architecture
The ARM architecture is a load-store architecture. The addressing range depends on whether you are using the 32-bit or the 64-bit arichitecture.
ARM processors are typical of RISC processors in that only load and store instructions can access memory. Data processing instructions operate on register contents only.
ARMv8 is the next major architectural update after ARMv7. It introduces a 64-bit architecture, but maintains compatibility with existing 32-bit architectures. It uses two execution states:
In AArch32 state, code has access to 32-bit general purpose registers.
Code executing in AArch32 state can only use the A32 and T32 instruction sets. This state is broadly compatible with the ARMv7-A architecture.
In AArch64 state, code has access to 64-bit general purpose registers. The AArch64 state exists only in the ARMv8 architecture.
Code executing in AArch64 state can only use the A64 instruction set.
In the AArch32 execution state, there are the following instruction set states:
- A32 state
- The state that executes A32 instructions.
- The state that executes T32 instructions.