+ -
当前位置:首页 → 问答吧 → 关于DEBUG中mov赋值的问题。

关于DEBUG中mov赋值的问题。

时间:2011-03-06

来源:互联网

debug中,直接用“R AX”命令,可以显示AX的值,然后输入1000,就可以把1000赋值给AX,立即用R命令查看,我们就可以看到AX的值魏1000.

我现在要问的是,我用MOV命令,怎么就不行呢。

步骤如下,
我输入程序运行起始地址A100,
然后输入命令 MOV AX,1000
然后再回车
然后运行 G=100

运行完毕后,我用R命令查看AX的值,仍然是0000,请问这是为什么?

作者: CAILI54321   发布时间: 2011-03-06

用T去单步跟踪看。用G执行完你的这条语句后,继续向下执行,直到遇到某断点才停止,此时ax的值可能有被修改了。

作者: shzhfu   发布时间: 2011-03-06

具体怎么操作?谢谢!

作者: CAILI54321   发布时间: 2011-03-06

我用T单步运行,发现ax的值是被改了的,但是又被会改回来了,是直接回车那一步改回来,请问为什么?

作者: CAILI54321   发布时间: 2011-03-06

借用你输入的步骤:

输入程序运行起始地址A100,
然后输入命令 MOV AX,1000(若有几条指令,就在这里一条条输入)
然后再回车 (直接回车表示结束A命令)
然后R IP
显示IP的值,然后输入100(把IP修改成100)
后面连续T完你输入的指令就可以了(你这里只一条指令,只能T一次,再多执行就是不能确定的内容了。)

作者: shzhfu   发布时间: 2011-03-06

引用 3 楼 caili54321 的回复:
我用T单步运行,发现ax的值是被改了的,但是又被会改回来了,是直接回车那一步改回来,请问为什么?

没明白你的意思,把我按照前面说的步骤的结果附上来,请参考:
Assembly code

-A
0B3D:0100 MOV AX,1000
0B3D:0103
-R IP
IP 0100
:100
-R
AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0B3D  ES=0B3D  SS=0B3D  CS=0B3D  IP=0100   NV UP EI PL NZ NA PO NC
0B3D:0100 B80010        MOV     AX,1000
-T

AX=1000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=0B3D  ES=0B3D  SS=0B3D  CS=0B3D  IP=0103   NV UP EI PL NZ NA PO NC
0B3D:0103 CC            INT     3

作者: shzhfu   发布时间: 2011-03-06