Quote Originally Posted by gadelhas View Post
Ok, steve, lets see, if my timer1 is low priority, and timer2 is high priority. The timer interrupts and starts to execute the code inside the ISR [low priority], meanwhile the timer2 triggers, since is high priority jumps to its own execution. What will hapen?
The next address that would be executed in the Low Priority ISR is pushed onto the stack and then the program branches to the location of the High Priority ISR (0008h), where it begins to execute that code.

Quote Originally Posted by gadelhas View Post
After the ISR of the timer2 finishs it jumps again to the ISR of the timer1 to the place where it was interrupt by timer2?
Yes. It pulls the address off the stack and branches back to the low priority ISR.

It will also set the global enable bit for the High Priority interrupts, so that if another High Priority interrupt occurs, it will branch again to that ISR. (Which is why it is critical to reset the interrupt flags in the ISR)

Eventually, it should finish with the Low Priority ISR and branch back to the main program flow. (This will also set the global enable bit for Low Priority interrupts)

Clear as mud?