One strong point of the 8051 is the way it handles interrupts. Vectoring to fixed 8-byte areas is convenient and efficient. Most interrupt routines are very short (or at least they should be), and generally can fit into the 8-byte area. Of course if your interrupt routine is longer, you can still jump to the appropriate routine from within the 8 byte interrupt region.
I can't wait to see an ISR that fits into 8 bytes!!
Push and pop acc cost you 4 bytes, RETI cost you 1 byte, leaving only 3 bytes for code. What can you do in three byte??
Read the tutorials from www.8052.com