ARM processors support different processor modes, depending on the architecture version (see Table 2.1).
Note
ARMv7-M does not support the same modes as other ARM processors. This section does not apply to ARMv7-M.
Table 2.1. ARM processor modes
| Processor mode | Architectures | Mode number |
|---|
| User | All | 0b10000 |
| FIQ ‑ Fast Interrupt Request | All | 0b10001 |
| IRQ ‑ Interrupt Request | All | 0b10010 |
| Supervisor | All | 0b10011 |
| Abort | All | 0b10111 |
| Undefined | All | 0b11011 |
| System | ARMv4 and above | 0b11111 |
| Monitor | Security Extensions only | 0b10110 |
All modes except User mode are referred to as privileged modes. They have full access to system resources and can change mode freely.
Applications that require task protection usually execute in User mode. Some embedded applications might run entirely in Supervisor or System modes.
Modes other than User mode are entered to service exceptions, or to access privileged resources.