I am getting what both of you mean.
You are saying that once the ISR is under commencement, the the timer keeps running in background while the instructions in ISR are executed step by step. That is self explanatory, and logically acceptable.
I also get that ISR should not take more than 1ms or the next interrupt will be missed.
But the confusion is still there. I loaded the TMR0 register with value 6... After exactly 1ms, interrupt was generated and processed. While the uC starts working on the ISR, the timer restarts. Will it restart from 6 or from 0???
If it restarts from 0, it won't take exactly 1ms to generate interrupt like previous cycle... Rather it will take 1.024ms, like I mentioned in my previous post... That means that first interval is 1ms, all the next intervals are 1.024ms onwards.
However, if it starts again from 6, Then we are good. Because during the execution of ISR, the timer takes exactly 1ms for the generation of next interrupt. Then the whole problem is solved.