鱼C论坛

 找回密码
 立即注册
查看: 6867|回复: 6

SP=0时,到底是栈空还是栈满?

[复制链接]
发表于 2014-11-18 09:17:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
首先,如果一个栈段是从10000到1FFFF。
假设一:
栈中只有一个字,那么这个字的偏移地址是FFFE,SP=FFFE,此时来一个pop操作,栈变为空,那么SP+2,sp=0。
所以,第一个观点,如果一个栈段是从10000到1FFFF,且为空栈,那么sp=0。

假设二:
栈中只有一个元素,那么sp=FFFE,这时不断地PUSH,每PUSH一次sp-2,那么当栈满时,SP=0。
所以,第二个观点,如果一个栈段如果一个栈段是从10000到1FFFF,而且已经满了,那么SP=0。

Now the problem arises.

到底sp=0,是栈满还是栈空???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-18 09:28:38 | 显示全部楼层
本帖最后由 小人 于 2014-11-18 01:31 编辑

sp位16位 他没法指向10000h 说以进位被掐了   所以是sp=0

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-18 09:36:27 | 显示全部楼层
sp=0  你可以看做空  也可以看做满     看你怎么操作
sp=0  sp-2 sp=FFFEH
sp=0  sp+2 sp=0002H

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-18 12:00:23 | 显示全部楼层
从10000到1FFFF这种栈段比较特殊    如果是10000~1000F的话  栈空的时候 SP=10
这种1FFFF栈空和栈满SP都等于0 因为1FFFF的下面超了范围了 跑到20000段了 所以还是认为SP=0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-28 15:48:52 | 显示全部楼层
我是小鱼丝 发表于 2014-11-18 12:00
从10000到1FFFF这种栈段比较特殊    如果是10000~1000F的话  栈空的时候 SP=10
这种1FFFF栈空和栈满SP都 ...

也就是说如单说SP=0,无法确定栈是空还是满。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-28 15:49:24 | 显示全部楼层
小人 发表于 2014-11-18 09:36
sp=0  你可以看做空  也可以看做满     看你怎么操作
sp=0  sp-2 sp=FFFEH
sp=0  sp+2 sp=0002H

懂了,单从一个SP=0,无法判断。我的理解对否?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-28 15:56:56 | 显示全部楼层
yy57 发表于 2014-11-28 15:48
也就是说如单说SP=0,无法确定栈是空还是满。

对的  呵呵!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 00:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表