携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情
若看到相同文章,为本人其他平台
ARMnTDMI
ARM处理器状态
ARM状态:32位,处理器执行字方式的ARM指令,处理器在系统上电时默认为ARM状态。
Thumb状态:16位,处理器执行半字方式的Thumb指令。
Thumb代码密度大,比arm状态高30%。
ARM处理器模式
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种不同的处理器模式,每种模式都有一组相应的寄存器组。
Thumb状态寄存器集是arm状态集的子集。
1.当前程序状态寄存器
CPSR:当前程序状态寄存器。监视和控制cpu内部操作。
SPSR:程序状态保存寄存器。 用于保存任务在异常发生之前的CPSR状态的当前值。.
1.1条件代码标志
1.2控制标志位
I、F:中断禁止标志位。
T:处理器状态位。
M0-M4:处理器模式位。
1.2.1 中断禁止标志位
1.2.2 控制位t
表示了正在操作的状态。 是在Thumb状态下还是在ARM状态下。
1.2.3 模式控制位
不是所有的组合都表示有效的模式。
1.3 保留位
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有条件执行功能外,其他指令均无条件执行。
预留......