来了来了来 发表于 2013-4-7 16:59:26

还是栈的问题

mov ax,1000h
mov ss,ax
mov sp,0020h

这个栈顶是咋回事。。。。。。
栈不是小的在上 大的在下吗怎么栈顶设置为0020了
求解

czfengyong 发表于 2013-4-7 16:59:27

JIAFEIMAO 发表于 2013-4-7 17:27:34

栈是由高地址向低地址增长,所以数据入栈时,栈顶向低地址增长,所以栈顶就越来越小。栈低应该大于或等于栈顶

伽利略幼稚 发表于 2013-4-7 21:38:40

飘过,帮顶一下~

j_t_zeng 发表于 2013-4-8 00:49:16

嗯,是的,栈是后进先出的,进栈,栈顶指向的地址减小;出栈,栈顶指向的地址增加。这样就不难想象当栈为空时,栈顶是指向栈底的。

〢坏ヤρì滊 发表于 2013-4-8 10:03:29

如图,明白吗?

思来想去 发表于 2013-4-8 10:16:16

我只是路过打酱油的。

来了来了来 发表于 2013-4-8 11:23:39

〢坏ヤρì滊 发表于 2013-4-8 10:03 static/image/common/back.gif
如图,明白吗?

0020不是地址吗 。。。。。。。sp不是指向的地址吗ax是1000然后 ss的地址是1000ss:sp不是栈顶地址吗?
我是想问ss是1000sp怎么可能是0020?

来了来了来 发表于 2013-4-8 11:46:12

czfengyong 发表于 2013-4-8 11:43 static/image/common/back.gif
自己画个图不知你看了能理解吗

恍然大悟 谢谢了哎激动人心,无法言表!

jsanwb 发表于 2013-4-10 10:46:28

mov ax,1000h
mov ss,ax   
mov sp,0020h
这一段的意思是,初始化一个这样的栈ss:sp=1000:0020,初始状态为空。

空栈状态下,sp指向处自动向下(即高位置处)加一。这段码原题应该是设置10000h~1001f的栈。
再翻翻3.7和3.8,图例解释还是很清楚
页: [1]
查看完整版本: 还是栈的问题