Thumb软中断指令的行为与ARM等价指令完全相同。进入异常的指令微处理器进入ARM执行状态。 二进制编码 Thumb软中断指令的二进制编码如图 说明 SWI指令引起SWI异常。这意味着:处理器状态切换到ARM状态;处理器模式切换到管理模式;CPSR保存到管理模式下的SPSR中;执行转移到SWI向量地址。处理器忽略immed_8,但immed_8出现在指令操作码的位[7:0]中,而异常处理程序用它来确定正在请求何种服务。这条指令不影响条件码标志。 这个指令将引起下列动作: 将下一条Thumb指令的地址保存在R14_svc。 将CPSR寄存器保存到SPSR_svc。 微处理器关闭IRQ,清Thumb位,并通过修改CPSR的相关位进入监控模式。 强制将PC值被置为地址0x08,然后进入ARM指令SWI的处理程序。正常的返回将恢复Thumb执行状态。 汇编格式 SWI <8位立即数> 其中:<8位立即数>为数字表达式,其取值为0~255范围内的整数。
|