bestainan 发表于 2013-10-16 02:55:03

自问自答 发表于 2013-10-16 02:55:04

本帖最后由 自问自答 于 2013-10-16 09:16 编辑

没错的 它是个指针 你可以任意设置,就是新添加数据的时候 指针以上的就被从新覆盖了

或者这么理解? 自己设定指针后,计算机就认为 你指定的栈顶就是栈顶,栈顶以上就是没数据的,需要的时候直接使用覆盖
指针已下都是有数据的.

这是我的理解

要是我理解错了希望有大神来斧正

yulin3192 发表于 2013-10-16 09:46:31

帮你顶一下
{:1_1:}

黑洞yyh 发表于 2013-10-16 15:07:42

用计算机的思维去理解你就明白了,计算机是不知道栈的范围的,它是通过sp来定位到数据的,有一个空箱子,外面有10本书(1本代表2个字节),入栈sp始终指向栈顶这是不用说的吧,我说出栈的,假如10本书都放到箱子中,那么sp指向栈顶10对吧,

假如sp改成6,那么栈顶就是6,你只要把7,8,9,10忽略掉,因为这些是cpu看不到的地方,cpu只会(sp=sp+2),下一个地方就是5,对于cpu来说sp当前指向的地方就是栈顶,所以说任何时候sp都指向栈顶,自己画个图就明白了,你要知道的一点是数据出栈时cpu只会朝一个方向就是sp=sp+2,

结论:
计算机认为的栈顶是,当前sp指向的地方就是栈顶,因为从当前sp这地方到栈底是表示一个有效栈,计算机知道的栈,

风之残月 发表于 2013-10-16 16:09:19

可以,cpu 是不知道栈的范围的,任意时刻sp指向栈顶

随风听雨雪 发表于 2013-10-16 21:57:20

可以,你设置ss:sp指向哪里,哪里就是栈顶,
cpu只知道0 1 别的你说了算

福禄娃娃 发表于 2013-10-16 23:01:20

可以自己设定栈顶
栈这个机制是由CPU提供的
是的,SP的值可以自己设定,栈也是内存单元中的一部分而已,和其他内存单元没什么区别
当SS:SP处指向哪儿,CPU就把那儿当做栈顶
栈的增长方向是由高地址向低地址
页: [1]
查看完整版本: 汇编 ss:sp