软件中断指令可以产生一个软件中断异常,这为应用程序调用系统例程提供一种机制,通常在user模式下执行。
SWI{<cond>} SWI_number
lr_svc=SWI指令后面的指令地址spsr_svc=cpsr pc=vectors+0x8 cpsr模式=svc cpsr I=1(屏蔽IRQ)
处理软件中断调用的代码段称为中断处理程序(SWI handler)中断处理程序通过执行指令的地址获取软件的中断号,指令地址是从lr计算出来的
SWI号由下式决定:
SWI_number=<SWI instruction> AND NOT(0xff000000) SWI instruction就是实际处理器执行的32位SWi指令