鱼C论坛

 找回密码
 立即注册
查看: 4393|回复: 9

王爽老师书上的一个疑问(程序6.3)

[复制链接]
发表于 2011-9-23 22:42:02 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 C!2015 于 2011-9-23 22:43 编辑

1.jpg
我觉得只用定义8个零,再把mov sp, 30h  改成mov sp, 20h就行了,我调试也OK,可书上为什么要是16个零呢?


书上的140页~~~

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-24 00:17:06 | 显示全部楼层
不行,20H就溢出了!以上题目,栈SP最小必须指向21H。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-24 00:40:24 | 显示全部楼层
16个字32字节,最低要指向21H,不然会向上溢出的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-9-24 21:56:04 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-25 01:49:29 | 显示全部楼层
其实楼主不必在这个问题上纠结,书上这么定义只是为了让栈空间更大,只要你定义的栈不会出现溢出就okay了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-25 15:20:25 | 显示全部楼层
如果只用8个0的话SP应该为10H,你定义成20H就向下溢出了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-29 09:17:22 | 显示全部楼层
学习了。!!!!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-9 22:29:43 | 显示全部楼层
学习ing!:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-9 23:09:17 | 显示全部楼层
6#


前面还定义了8个字型空间的所以是20h,楼主的是可以的,只要不发生溢出就可以,不是21h的,因为计算机从0开始数数的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2016-8-31 18:20:12 | 显示全部楼层
这是由于debug的过程中debug程序也有压栈的操作(在-t的过程中用-d查看cs:0附近的内容就会发现这个情况),如果是20h的话,执行到后半段可能出现栈溢出,即可能覆盖cs:8~cs:f之间的数据,最后出现不正确的结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 00:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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