鱼C论坛

 找回密码
 立即注册
查看: 3715|回复: 10

关于栈的问题请教

[复制链接]
发表于 2011-7-12 10:47:49 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 哮月苍狼 于 2011-7-15 12:19 编辑

书上60页,问题3.6
将10000H-1000FH,这段空间当做栈,初始状态栈是空的,此时,SS=1000H,SP=0010H
这句话我可不可以这样理解,10000H-1000FH,也是一个“栈段”,大小16KB??
这段话我想不明白 的就是,既然这个单元的偏移地址为栈最底部的字单元地址加2,栈最底部字单元地址为1000:000E,栈 空时,SP=0010H.
那为什么书上68页,问题3.11,同样将10000H-1FFFFH,这段空间当成栈段,初始状态为空,它的SS=1000H,IP为什么会等于0呢?SP原来=FFFEH,栈为空,栈中唯一元素出栈,出栈SP=SP+2,按照问题3.6的思想,那就应该是FFFEH+2=10000,但为什么为认为IP=0呢?这个概念上的问题,我弄糊涂了,请大家帮我转过这个弯来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-12 11:59:06 | 显示全部楼层
IP是地址指针寄存器,和栈没决定性关系,栈只取决于SS,SP
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-12 13:24:31 | 显示全部楼层
我是新手:D:D
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-12 16:42:31 | 显示全部楼层
本帖最后由 libocdf 于 2011-7-14 13:46 编辑

按照题目意思,10000H-1000FH就是一个“栈段”,其大小应为“16B”而非“16KB”(16KB应该是10000H~13FFFH吧),
引用你的原话“那就应该是FFFEH+2=10000,但为什么为认为IP=0呢?”IP是16位寄存器(最大存放两个字节内容,如:3495H,0594H,ABCDH),其最大值用16进制表示为FFFFH,而10000H>FFFFH,注意16进制的10000H是五位数,而其它均为四位,所以最高位的10000H中最高位的1只能舍弃,寄存器放不下。{:1_1:}
10000H把1舍弃后,寄存器中就只有0000H了。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-14 00:14:51 | 显示全部楼层
楼主,不理视???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-14 00:44:37 | 显示全部楼层
楼主不厚道,别人帮你解决问题,一句谢谢也不留下,以后谁帮你?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-14 00:52:37 | 显示全部楼层
4楼正解。看一下有符号数和无符号数的相关知识吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-14 04:40:43 | 显示全部楼层
呵呵,听课不认真了:lol!把基础看几遍就明白了!因为甲鱼先生说一到第三章的内容很重要!
我也是有点模糊,还在加深理解和记忆。你的问题我也看得有点模糊,没法解答,我基础好不够好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-14 06:35:38 | 显示全部楼层
栈 很有用 也很重要,好好理解下吧 楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-14 10:25:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-14 13:43:54 | 显示全部楼层
哮月苍狼 发表于 2011-7-14 10:25
问题是我没弄明白,我选谁的最优?肯定是要谢谢大伙 的帮忙的

现在还有什么地方没明白??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 00:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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