Assembler User GuidePreface Overview of the Assembler Overview of the ARM Architecture About the ARM architecture ARM, Thumb, and ThumbEE instruction sets Changing between ARM, Thumb, and ThumbEE state Processor modes, and privileged and unprivileged s Processor modes in ARMv6-M and ARMv7-M VFP hardware ARM registers General-purpose registers Register accesses Predeclared core register names Predeclared extension register names Predeclared coprocessor names Program Counter Application Program Status Register The Q flag Current Program Status Register Saved Program Status Registers ARM and Thumb instruction set overview Access to the inline barrel shifter Structure of Assembly Language Modules Writing ARM Assembly Language Condition Codes Using the Assembler Symbols, Literals, Expressions, and Operators VFP Programming Assembler Command-line Options ARM and Thumb Instructions VFP Instructions Directives Reference Via File Syntax
Processor modes, and privileged and unprivileged software execution
2.4 Processor modes, and privileged and unprivileged software execution
The ARM architecture supports different levels of execution privilege. The privilege level depends on the processor mode.
NoteARMv6-M and ARMv7-M do not support the same modes as other ARM architectures and profiles. Some of the processor modes listed here do not apply to ARMv6-M and ARMv7-M.
Table 2-1 ARM processor modes
User mode is an unprivileged mode, and has restricted access to system resources. All other modes have full access to system resources in the current security state, can change mode freely, and execute software as privileged.
Applications that require task protection usually execute in User mode. Some embedded applications might run entirely in any mode other than User mode. An application that requires full access to system resources usually executes in System mode.
Modes other than User mode are entered to service exceptions, or to access privileged resources.
On an implementation that includes the Security Extensions, in all modes except Monitor mode and Hypervisor (Hyp) mode, code can run in either a Secure state or in a Non-secure state. In Monitor mode, code can only run in a Secure state, and in Hyp mode, code can only run in a Non-secure state.
Related Knowledgebase Articles
of your data.