ARM处理器状态如何切换?详细说明切换过程?

2024-11-16 20:42:25
推荐回答(2个)
回答1:

状态切换方法:
arm指令集和thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,
但arm微处理器在开始执行代码时,应该处于arm状态。
进入thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行bx指令的方法,
使微处理器从arm状态切换到thumb状态。
此外,当处理器处于thumb状态时发生异常(如irq、fiq、undef、abort、swi等),则异常处理返回时,自动切换到thumb状态。
进入arm状态:当操作数寄存器的状态位为0时,执行bx指令时可以使微处理器从thumb状态切换到arm状态。
此外,在处理器进行异常处理时,把pc指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,
也可以使处理器切换到arm状态

回答2:

但ARM微处理器在开始执行代码时,应该处于ARM状态。
进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,
使微处理器从ARM状态切换到Thumb状态。
此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。
进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,