别老说“堆栈堆栈”的,堆是堆,栈是栈,二者完全不是一个概念。SP是51单片机的栈指针,用于为程序的运行提供并维护栈(也就是通用的先进先出队列)。51单片机的栈是向上生长的,所以一般连接器会在分配完所有的RAM块后将SP放在地址最高处。由于SP是个“指针”,所以栈操作都是间接寻址的。对于C语言编程的用户而言,几乎不涉及到对SP的操作。