1.堆栈段和堆栈的对应关系是怎样的?
一个64K大小的堆栈段对应一个64K大小的堆栈,是这样的吗?还是一个64K大小的堆栈段可以对应多个比它小的堆栈?
2.那么又怎样通过SS:SP寻址堆栈呢?
3.堆栈段基地址与栈顶,栈底的关系是怎样的?
------解决方案--------------------------------------------------------
一般来说是不是初始化时,ss被载入堆栈段基址,sp被初始化为指向该段的尾端减一字节处,这时该段的尾端既是栈底,sp指向的字节即为栈顶。
个人推断的,我也想知道各种编译器的具体实现方法
------解决方案--------------------------------------------------------
个人理解:
一个堆栈段对应一个堆栈,一个任务在同一个时刻只有一个堆栈段。
SS存放堆栈段的选择符,该选择符规定了堆栈的长度,生长方向和限长。SP存放堆栈段的栈底,刚开始的时候栈底地址 <=栈顶地址,如果栈里没有数据,那么栈底地址=栈顶地址,否则栈底 <栈顶地址