在80C51单片机中
堆栈通常设在30H~7FH这一段片内RAM中,堆栈区是向地址增大的方向生成的,且由于CPU是8位的,数据入栈时,SP先加1,然后数据再压入SP指向的单元;数据出栈时,先将指向的单元的数据弹出,然后SP再减1。(以字节为单位)
在8086CPU中
堆栈是在存储器里开辟出来的一个特定的数据区域,称为堆栈段。
堆栈的位置和长度由堆栈段寄存器SS和堆栈指针SP来设定,给定了SS和SP就设置了一个堆栈,其最大容量为64KB。堆栈区是向地址减小的方向生成的,操作方式有PUSH和POP,以字为单位,PUSH向堆栈压入一个字,同时SP–2,POP将SP指向的字从堆栈弹出,同时SP+2 。