是电脑坏了还是怎么的Debug下不能执行命令!!!!!
本帖最后由 高山一片云 于 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
权限不够贴不了图,不知道有没有同仁们也遇到过类似情况?还是上述代码有逻辑错误?
纠结了好久,现在明白了,是cmd命令提示行的问题,我用emu8086运行没有问题。 本帖最后由 高山一片云 于 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
高山一片云 发表于 2012-12-18 18:32 static/image/common/back.gif
论坛有位大牛的回答,似乎也很有道理。
T命令是单步中断,中断过程中,会使用当前栈空间存放当前cpu运行 ...
{:5_97:}帅哥你是在说我么 你的问题就是t命令造成的哦。 t命令有个中断过程,有入栈的过程,你sp设的太小了。t命令运行就要出问题咯 来看看呵呵 嗯 长知识了
页:
[1]