thumb指令

ARM状态和THUMB状态

╄→гoц情女王★ 提交于 2019-12-23 17:44:18
ARM处理器的工作状态 在ARM的体系结构中,可以工作在三种不同的状态,一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态。 《嵌入式系统开发与应用教程(第2版)》上介绍说:有两种状态ARM状态和Thumb状态,当时初学甚为不解,现在一知半解时再看忽然想到了显示中的例子: ARM核就好比一个高中学校,那种包含普通高中和职业高中的。普通高中就相当于ARM状态,职业高中就相当于Thumb状态,这样还不能理解的话:可以认为 泡泡卡丁车 中普通模式和加速模式,,卡丁车加速要等到集气管加满,然后“ctrl”一下,就切换到了加速模式,气放完了就又回来了,不管加速模式还是普通模式都是在跑,只是速度不一样而已。 而ARM状态和Thumb状态可以直接通过某些指令直接切换,都是在运行程序,只不过指令长度不一样而已。这个概念对初学者相当重要,因为当ARM Thumb是什么还没弄清楚,怎么能理解两种状态呢? 他们之间的关系清楚了,这样就可以深入了解ARM状态是什么,Thumb状态是什么了。 另外:ARM的M系列主要用Thumb指令,ARM9和A系列主要用ARM指令 S3C2440.S启动代码中根本就没用Thumb指令。 ARM 状态此时处理器执行32位的字对齐的 ARM 指令,Thumb状态此时处理器执行16位的,半字对齐的THUMB指令。 切换程序:从 ARM 到Thumb: LDR