stack implementation in 8051
You are right.

There are two kind of stack type. full stack and empty stack.


  Full stack: A full stack is where the stack pointer points to the last
  data item written. A push will increment the stack pointer and store
  the value.
  
  Empty stack: Empty stack is where the stack pointer points to the
  first free slot. A push will store the value, and increment the stack
  pointer.


And 8051 uses the former, full stack. For example, when the 8051 is initialized, SP will be initialized to 07h. If you immediately push a value onto the stack, the value will be stored in internal RAM address 08h.