An interrupt is exactly as its name implies. The processor runs the main code under normal operation. Once an interrupt is triggered, it "interrupts" the main program code to carry out another task.
Each instruction in a program resides at an address location in program ROM. Under normal operation, the program counter jumps to each program ROM address location sequentially, executing each instruction that exists at each program ROM address location.
Upon triggering of an interrupt, the program counter jumps to the "interrupt vector" address location in program ROM and carries out whatever instruction that exists at that address location. The idea is to have a jump instruction reside at the interrupt vector address location that will then jump the program counter to the start of the interrupt code. At the end of the interrupt code you have a "return from interrupt" instruction that jumps the program counter back to the "pre-interrupt" address location to resume running the main code.
This means that if in the main code you're running a math operation and an interrupt condition exists, the processor will stop what it's doing to execute the interrupt code segment, known as the "interrupt handler". If you're using multiple interrupts, then you write the interrupt code to poll each interrupt flag bit to determine what set the interrupt, then have it jump to the appropriate code segment that the processor is to execute for each interrupt.
It doesn't get much simpler than this. Perhaps it would help if you could tell us exactly which processor you're referring to.