Question: what is the difference between a software interrupt and a subroutine call?
Answer: Simply, a subroutine is code you write and call as required, an interrupt is system bound and cannot be called by the user but occurs when something happens (sources are hardware, software and CPU) that requires immediate attention.