What is the use of declaring a variable volatile... what it means if it is specified volatile?
'volatile' is a standard 'C' keyword - its meaning in C51 is no different from any other 'C' compiler.
You should look it up in any 'C' textbook...
http://www.keil.com/books/
Goggle "volatile C keyword" see what you get.
The correct question is when should you use it. T answer would be to access hardware registers, memory mapped hardware, and global variables that are written to by an interrupt.