王爽老师书上的一个疑问(程序6.3)
本帖最后由 C!2015 于 2011-9-23 22:43 编辑我觉得只用定义8个零,再把mov sp, 30h改成mov sp, 20h就行了,我调试也OK,可书上为什么要是16个零呢?
书上的140页~~~
不行,20H就溢出了!以上题目,栈SP最小必须指向21H。 16个字32字节,最低要指向21H,不然会向上溢出的 topcookie 发表于 2011-9-24 00:40 static/image/common/back.gif
16个字32字节,最低要指向21H,不然会向上溢出的
谢谢这位热心人,但是我说了,可以只用8个零,那样还是32位吗? 其实楼主不必在这个问题上纠结,书上这么定义只是为了让栈空间更大,只要你定义的栈不会出现溢出就okay了 如果只用8个0的话SP应该为10H,你定义成20H就向下溢出了 学习了。!!!!!!!!!!! 学习ing!:lol 6#
前面还定义了8个字型空间的所以是20h,楼主的是可以的,只要不发生溢出就可以,不是21h的,因为计算机从0开始数数的 这是由于debug的过程中debug程序也有压栈的操作(在-t的过程中用-d查看cs:0附近的内容就会发现这个情况),如果是20h的话,执行到后半段可能出现栈溢出,即可能覆盖cs:8~cs:f之间的数据,最后出现不正确的结果。
页:
[1]