两种工作状态
1、ARM状态:32位,ARM状态执行字对齐的32位ARM指令。
2、Thumb状态,16位,执行半字对齐的16位指令。
3、用Bx Rn指令来进行两种状态的切换:
其中Bx是跳转指令,而Rn是寄存器(1个字,32位),如果Rn的位0为1,则进入Thumb状态;如果Rn的位为0,这进入ARM状态。(原 因:ARM指令的后两位始终为0,没有用,而Thumb指令的后一位始终为0,没有用,因此采用位0来表示ARM指令与Thumb指令的切换标志位。)
注:1、ARM和Thumb两种状态之间的切换不影响处理器的工作模式和寄存器的内容。
2、ARM处理器在处理异常时,不管处理器处于什么状态,则都将切换到ARM状态。(**********)
另外:ARM的M系列主要用Thumb指令,ARM9和A系列主要用ARM指令
S3C2440.S启动代码中根本就没用Thumb指令