鱼C论坛

 找回密码
 立即注册
查看: 4983|回复: 22

【小甲鱼】汇编视频18中的实验3.10中出现的问题

[复制链接]
发表于 2012-1-30 15:25:53 | 显示全部楼层 |阅读模式
1鱼币
file:///C:/Documents%20and%20Settings/Administrator/桌面/真出问题.png这个程序很简单,但是我在DEBUG中运行的时候,T命令的时候到图片这一步DEBUG就自动退出了,请求各位怎么解决!

最佳答案

查看完整内容

T 是 debug 的命令,它要实现单步调试就要经过上面的四步,如果是程序自己运行不调试的话则不会这样。 当它执行你的T命令,要干 “2.tf if入栈”,“3.cs ip入栈”的时候,你的栈不够了。 这四步与你的代码无关,是debug的问题。debug要实现单步调试的“T”命令,就必须这么做。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-30 15:25:54 | 显示全部楼层
本帖最后由 Seely 于 2012-2-3 22:40 编辑


T 是 debug 的命令,它要实现单步调试就要经过上面的四步,如果是程序自己运行不调试的话则不会这样。
当它执行你的T命令,要干 “2.tf if入栈”,“3.cs ip入栈”的时候,你的栈不够了。
这四步与你的代码无关,是debug的问题。debug要实现单步调试的“T”命令,就必须这么做。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-1-30 15:26:18 | 显示全部楼层
自己先顶顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-1-30 19:53:20 | 显示全部楼层
唉~人好少,有好心人吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-31 23:51:27 | 显示全部楼层
你的图挂掉了···
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-1 11:15:06 | 显示全部楼层
没有图啊 怎么看吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-1 12:32:30 | 显示全部楼层
图在这里,几位大侠

真出问题.rar

13.87 KB, 下载次数: 12

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-1 12:32:58 | 显示全部楼层
赵璐 发表于 2012-2-1 11:15
没有图啊 怎么看吧

图见6楼,大侠
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-1 12:33:10 | 显示全部楼层
疾风飘流 发表于 2012-1-31 23:51
你的图挂掉了···

图见6楼,大侠
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-1 14:59:55 | 显示全部楼层
找一个安全的内存空间再调试一下看看,正常这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-1 19:50:33 | 显示全部楼层
小军 发表于 2012-2-1 14:59
找一个安全的内存空间再调试一下看看,正常这样

您是指CS:IP这个内存吗?那为什么之前debug中我一直用这块内存(而且这是默认的),都没有这种情况呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-1 19:53:42 | 显示全部楼层
小军 发表于 2012-2-1 14:59
找一个安全的内存空间再调试一下看看,正常这样

要不您在您的机子上试试这个简单程序?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-1 20:50:13 | 显示全部楼层
本帖最后由 we6540 于 2012-2-1 20:51 编辑

跟我上次的情况样,在DOS系统上运行就没问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-1 20:56:38 | 显示全部楼层
we6540 发表于 2012-2-1 20:50
跟我上次的情况样,在DOS系统上运行就没问题了

恩~那这位大侠知道是什么原因吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-2 22:01:32 | 显示全部楼层
本帖最后由 疾风飘流 于 2012-2-2 22:17 编辑

亲试,和安全的内存空间没关系,与段寄存器也没有关系,将前后各种等换后,发现应该是SP太小的原因,当sp是6以上时(包括6)就没有问题了,具体原因不知,同望大神赐教。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-3 17:30:46 | 显示全部楼层
疾风飘流 发表于 2012-2-2 22:01
亲试,和安全的内存空间没关系,与段寄存器也没有关系,将前后各种等换后,发现应该是SP太小的原因,当sp是 ...

谢谢回复,确实是这样子的,不知道当SP<6时,是不是触碰到了不安全区域?我设置的SP=10H,也不知道前面这些数据有什么意义,你看看吧

789.rar

2.57 KB, 下载次数: 0

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-3 18:59:02 | 显示全部楼层
与debug 的 T 命令本身有关。
debug中的t命令

书上说是用了单步中断的原理

1.取得中断码
2.tf if入栈
3.cs ip入栈
4.响应中断

很明显你堆栈不够用……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-3 20:57:39 | 显示全部楼层
这位同学,您的图呢?没有图怎么看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-3 21:27:37 | 显示全部楼层
独立日 发表于 2012-2-3 20:57
这位同学,您的图呢?没有图怎么看

这位同学你好,图挂了,放置6楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-3 21:29:38 | 显示全部楼层
Seely 发表于 2012-2-3 18:59
与debug 的 T 命令本身有关。

很明显你堆栈不够用……

就是说SP取值太小?这个单步中断的四步,我怎么不太理解,能解释一下吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-19 18:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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