Consider following program
MOV R1,5000
MOV R2,2000
ADD R2,R2,R3 //Interrupt raised here, Mem Add of this instruction is 1008
Now when ISR is served and program resumes from ADD instruction(1008), R1 and R2 will have different values then intended. How is it taken care of?
case 1: All register values are stored before interuptt and replaced.
case 2: Program begins execution from MOV R1,5000 after interuptt is served.