. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(内存访问)
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
关于空栈栈顶指针问题
[待解决]
回复[
1
次 ] 点击[
389
次 ]
lin1712
[帖 主]
[ 发表时间:2010-06-03 15:23 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:2
信誉值:0
注册日期:2010-06-01 10:03
P68 问题3.11所述,10000H~1FFFFH段作为栈,结论空栈时SP指向0。
首先,10000H~1FFFFH作为新建栈的空间,栈指针却超出了该范围?如果进栈SP-2=-2?
其次,如果20000H~2FFFFH作为新建栈的空间,空栈时SP又是多少?
再次,如果我们以10000H作为栈底即空栈的栈顶,每一个字进栈SP+2,出栈SP-2,并且无论栈的起始地址,都可以用SP=0做为空栈的标志。不知道汇编语言为什么要采用高位地址做栈底,进栈减出栈加的方式呢?
新手大胆发言,如有问题敬请指出!
scuzg
[第
1
楼]
[ 回复时间:2010-06-07 20:36 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:307
信誉值:0
注册日期:2009-03-15 23:46
当堆栈初始化时,SP指向堆栈之外,即指向比栈底偏移量大2的地址。
如果sp的初值为0,如果进栈,则sp-2后为-2或0fffeh,这0fffeh就是当堆栈的容量为64K时栈底的偏移量。
如果20000H~2FFFFH作为新建栈的空间,空栈时SP也是0。
至于楼主的“再次”说到“每一个字进栈SP+2,出栈SP-2”是不正确的。
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved