搜索
编程论坛
→
开发语言
→
『 汇编论坛 』
→ 下面的程序为什么会栈溢出。
标题:
下面的程序为什么会栈溢出。
只看楼主
随风的飞叶
等 级:
论坛游侠
威 望:
2
帖 子:90
专家分:158
注 册:2015-10-8
第
11
楼
得分:0
以下是引用
hu9jj
在2015-10-14 07:30:01的发言:
debug在执行程序的时候也要用到堆栈的。
debug执行程序时单步中断用到压栈这个我知道,只是还有两个字的内容的改变是什么引起的。还有,执行到第七次压栈时怎么程序就给踢出来了。溢出内容没有看到改变什么原有数据啊。
2015-10-14 07:56
wmf2014
等 级:
贵宾
威 望:
216
帖 子:2039
专家分:11273
注 册:2014-12-6
第
12
楼
得分:20
这小伙子好执着啊!
1、最前面的数据就是debug单步中断保护现场改写的数据,不过它已经将SP指针值还原,不影响你定义的栈空间大小。
2、溢出的数据根本不会存储,当栈指针为0,再次压栈,栈指针会变为FFFF,此时会产生1号中断,通知栈溢出,SS的值保持不变。
能编个毛线衣吗?
2015-10-14 08:40
随风的飞叶
等 级:
论坛游侠
威 望:
2
帖 子:90
专家分:158
注 册:2015-10-8
第
13
楼
得分:0
我第七次压栈会被踢出程序大概明白了。因为数据丢失,无法恢复现场,所以程序崩溃。那么压栈时,ss:fffe的内容也改变了啊,本来全是00的。随着压栈的进行。后面的数据也在变化,就是那五个字的内容会逐次改写的。
2015-10-14 08:55
随风的飞叶
等 级:
论坛游侠
威 望:
2
帖 子:90
专家分:158
注 册:2015-10-8
第
14
楼
得分:0
栈溢出不是要进行循环存放的吗,汇编语言不是不对栈顶越界作检查吗
2015-10-14 08:57
随风的飞叶
等 级:
论坛游侠
威 望:
2
帖 子:90
专家分:158
注 册:2015-10-8
第
15
楼
得分:0
最后三章看的实在是糊涂,先看c语言去,回头再来学吧,实验实在是做不出来。
2015-10-14 13:53
15
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-458138-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.700375 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved