鱼C论坛

 找回密码
 立即注册
查看: 1663|回复: 5

是电脑坏了还是怎么的Debug下不能执行命令!!!!!

[复制链接]
发表于 2012-12-18 17:55:35 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 高山一片云 于 2012-12-18 18:02 编辑

在XP的带命令提示符下执行Debug命令,在内存里写了几行代码,用T命令执行,但是执行到mov ax,2266H 时cmd窗口就突然报错退出了,试了几次都不行。

代码如下:
mov ax,1000
mov ss,ax
mov sp,2
mov ax,2266
push ax



权限不够贴不了图,不知道有没有同仁们也遇到过类似情况?还是上述代码有逻辑错误?




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-12-18 18:12:56 | 显示全部楼层
纠结了好久,现在明白了,是cmd命令提示行的问题,我用emu8086运行没有问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-12-18 18:32:18 | 显示全部楼层
本帖最后由 高山一片云 于 2012-12-18 18:37 编辑

论坛有位大牛的回答,似乎也很有道理。

T命令是单步中断,中断过程中,会使用当前栈空间存放当前cpu运行现场的cs,ip和标志寄存器的值,以待从中断返回后能够正确执行以前的程序。当你的栈空间过小,中断过程入栈数据的时候,越界了,由于是在windows的保护模式下,所以,windows认为这个操作是不合法的,危险的。所以,就给你毙掉了。


你这个不是问题,而是mov sp,2 的问题。改成mov sp,10就没问题了。

  
mov ax,2266
复制代码


原来论坛有位兄弟和我碰到同样的问题,链接:http://bbs.fishc.com/forum.php?mod=viewthread&tid=20070



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-18 18:45:50 | 显示全部楼层

帅哥你是在说我么 你的问题就是t命令造成的哦。 t命令有个中断过程,有入栈的过程,你sp设的太小了。t命令运行就要出问题咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-24 13:36:17 | 显示全部楼层
来看看呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-24 14:04:36 | 显示全部楼层
嗯 长知识了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-17 19:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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