一、指令集介绍
1、为了增强和扩展指令系统的能力而奋斗,多少年来这一直是ARM锲而不舍的精神动力。由于历史原因(从ARM7TDMI开始),ARM处理器一直支持两种形式上相对独立的指令集,它们分别是:
(1)32位的ARM指令集。对应处理器状态:ARM状态
(2)16位的Thumb指令集。对应处理器状态:Thumb状态
2、可见,这两种指令集也对应了两种处理器执行状态。在程序的执行过程中,处理器可以动态地在两种执行状态之中切换。实际上,Thumb指令集在功能上是ARM指令集的一个子集,但它能带来更高的代码密度,给目标代码减肥。这对于要勒紧裤腰带的应用还是很经济的。
3、ARM和Thumb指令集演变图
二、STM32指令集
1、M3、M4和Thumb、Thumb2指令集的关系如图
致谢
1、《Cortex M3 权威指南》[中文版]
2、《Cortex M3与M4 权威指南》[英文版]