鱼C论坛

 找回密码
 立即注册
查看: 2425|回复: 7

[已解决]求教,关于栈顶变化范围0~ffffh的问题,谢谢

[复制链接]
发表于 2015-5-17 17:40:58 | 显示全部楼层 |阅读模式

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

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

x
课本中提到栈顶的最大变化范围位0~ffffh
我认为是0到fffch
我的理解是:8086是16寄存器,最大64kb,如果是栈的定义范围可以为0~ffffh,但书里说的是栈顶,最大为fffch。

求教各位高手,我的理解哪里有问题,求详细讲解
最佳答案
2015-5-18 15:02:38
如果你把栈顶的 初始值定为0    你去计算push的时候      CPU计算是0减去1的位置开始存放的
0减去1不够减  又因为计算机是16位      0000H-0001H   借位  结果是              FFFFH    那就是从FFFF开始存放数据   所以 栈的最大容量就是0H-FFFFH
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-17 17:53:53 | 显示全部楼层
书里到底是说 FFFFH 还是 FFFCH    你发的我没看懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-17 17:54:50 | 显示全部楼层
书上说的是ffffh,我的理解是fffch,您能跟讲讲我这问题出在哪了么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-17 23:26:41 | 显示全部楼层
本帖最后由 零度非安全 于 2015-5-17 23:29 编辑

楼主,你好!对于你的问题我的理解如下:
首先8086CPU是16位的,所以说寄存器也是16位的,因此最大为2的16次方bit,即65536bit,所以地址变换范围是从0到65535(地址是从0开始的),十进制的65535相当于十六进制中的FFFF,所以变换范围变成了0到FFFF,栈也是如此
那么你能告诉我你分析那个数据FFFC是依据什么得到的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-18 12:49:23 | 显示全部楼层
您说得对,就是因位寄存器也是16位的。所以我的理解是栈的空间最大为64kb
一个栈不是两个字节么,所以我的理解是栈顶最大是fffch


栈的最大取值是ffffh,栈顶是fffch,我知道我的理解有问题,请您给我说说我的问题出在哪了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-18 15:02:38 | 显示全部楼层    本楼为最佳答案   
如果你把栈顶的 初始值定为0    你去计算push的时候      CPU计算是0减去1的位置开始存放的
0减去1不够减  又因为计算机是16位      0000H-0001H   借位  结果是              FFFFH    那就是从FFFF开始存放数据   所以 栈的最大容量就是0H-FFFFH
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-18 22:12:31 | 显示全部楼层
关于这个可以参见问题3.11{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-15 22:06:24 | 显示全部楼层
当定义一个栈为空时,sp指向栈底+1那个位置是吧!那么ffff-1=fffe,因该最大是0-fffe的栈啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-19 02:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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