Yes, there is a difference. When a hardware interrupt occurs, all interrupts are disabled and registers are pushed onto the stack. A hardware interrupt routine requires a ?sti? instruction before returning.
However, a software interrupt is handled just like a call routine. The difference between a regular CALL to a routine and a software INT instruction is that creating a software interrupt gives us a static handle to the routine.