ARM体系结构

184 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情

若看到相同文章,为本人其他平台

ARMnTDMI

ARM处理器状态

ARM状态:32位,处理器执行字方式的ARM指令,处理器在系统上电时默认为ARM状态。

Thumb状态:16位,处理器执行半字方式的Thumb指令。

Thumb代码密度大,比arm状态高30%。

ARM处理器模式

29.jpg

ARM寄存器

arm一共有37个用户可访问的32位寄存器,其中有6个32位宽的状态寄存器目前只使用了其中12位。

31个通用寄存器:r0-r15,r13_svc, r14_svc, r13_abt, r14_abt, r13_und, r14_und, r13_irq, r14_irq, r8_fiq, r9_fiq, r10_fiq, r11_fiq, r12_fiq, r13_fiq, r14_fiq。

6个状态寄存器:CPSR, SPSR_svc, SPSR_abt, SPSR_und, SPSR_irq, SPSR_fiq。

arm处理器共有7种不同的处理器模式,每种模式都有一组相应的寄存器组。

24.jpg Thumb状态寄存器集是arm状态集的子集。

25.jpg

1.当前程序状态寄存器

CPSR:当前程序状态寄存器。监视和控制cpu内部操作。

SPSR:程序状态保存寄存器。 用于保存任务在异常发生之前的CPSR状态的当前值。.

26.jpg

27.jpg

1.1条件代码标志

1.2控制标志位

I、F:中断禁止标志位。

T:处理器状态位。

M0-M4:处理器模式位。

1.2.1 中断禁止标志位
1.2.2 控制位t

​ 表示了正在操作的状态。 是在Thumb状态下还是在ARM状态下。

1.2.3 模式控制位

​ 不是所有的组合都表示有效的模式。

1.3 保留位

28.jpg

ARM体系的异常、中断及其向量表

预留......

ARM体系的存储系统

预留......

ARM处理器寻址方式

4.1寄存器寻址

4.2立即寻址

4.3寄存器移位寻址

4.4寄存器间接寻址

4.5基址寻址

4.6多寄存器寻址

4.7堆栈寻址

4.8相对寻址

Thumb汇编指令

Thumb指令集没有协处理器指令、信号量指令以及访问CPSR或SPSR指令。没有乘加指令及64位乘法指令等。

除了分支指令b有条件执行功能外,其他指令均无条件执行。

预留......