Can I call function outside of ISR,from inside of an ISR which is call by other function(eg. from MAIN) in AT89S52 using C?
Yes. But you have to understand exactly what state the processor is in and how to control it. The most important point is understanding.
I'd, basically, say no. the complexity of doing this is way beyond what it is worth. in cases like this I duplicate the code and have one code for main and another for the ISR.
not only complexity, but also risk. there is in such legio possibilities for having some minuscule oversight that will lead to the dreaded once a week failure
I just wonder which answer the OP will go for. Probably a trick question from his tutor.