I. Arm has two working states:
(1) arm status. At this time, the processor executes the 32-bit arm command.
(2) thumb status. At this time, the processor executes a 16-bit half-aligned thumb command.
2. Arm processors must be divided into big-end and small-end formats (both arm11 and arm11 are small-end formats)
The so-called size-end format mainly talks about the relationship between the logic high status of data and the high status of addresses,
Memory method: the logic is low to the logic, the logic is high to the small end, the logic is low to the logic is high, the logic is high to the logic is low to the big end;
Iii. Arm instruction Length
1. The arm instruction length can be 32-bit or 16-bit.
2. Arm supports three data types: byte (8 bits), half-character (16 bits), and word (32 bits ).
Where,
4-byte alignment is required (that is to say, the address of the data in the memory must be 2-bit low and 0; or the data can be stored only after a multiple of 4 ),
The half word requires two-byte alignment (the second bit of the address is 0; or only a multiple of 2 can start to store data)
4. Arm processors support 7 working modes
1. USR user mode: used for normal executionProgram
2. FIQ fast interrupt mode: used for high-speed data transmission
3. IRQ external interrupt mode: used for normal interrupt handling
4. SVC management mode: the protection mode used by the operating system
5. Abt Data Access termination mode: the inbound mode for prefetch data or prefetch commands. It can be used for virtual storage and storage protection.
6. sys system mode: Run privileged Operating System Tasks
7. Und undefined command mode: the mode in which undefined commands are executed and can be used to support hardware
Category:
User Mode: USR
Privileged mode: six other modes except USR
Exception mode: five other modes except USR and sys
V. How to change the arm working mode
(1) software changes
(2) external interrupt or Exception Handling Methods