ARM微处理器的工作状态
ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:
—第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;
—第二种为Thumb状态,此时处理器执行16位的,半字对齐的Thumb指令。
当ARM微处理器执行32位的ARM指令集时,工作在ARM状态;当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。
(如果不懂,简单的理解ARM处理器工作时有两种状态(方式)一是ARM状态二是Thumb状态,并且两种状态可以互相切换)
状态切换方法:
(由于还未学习寄存器、ARM指令、异常处理等。所以暂时了解ARM工作状态间的切换)
ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,但ARM微处理器在开始执行代码时,应该处于ARM状态。
进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undrf、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。
进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。