I am using 89v51RD2. my question is how to push an address of a function on to stack in C?? For the same how do I get address of a function?? Plz Help.
So essentially you want the handler of a high-priority interrupt to trigger a low-priority interrupt so that its handler would complete the processing? Why don't you do just that, assuming your MCU supports multiple interrupt priorities?
Sounds like a task better accomplished in assembler, with a clear understanding about what's on the stack, and the implications of calling/returning on the processor context.
For call back examples, look at qsort(), pointers to functions, calling back with parameters.
a well known technique. I know of no '51 derivative that does not have, at least, 2 priorities