我在debug里1000:0000~1000:000f里随意乱写了一组数据来检测,随后用a命令在1100:0这个位置写语句如下:
mov ax,2000
mov ds,ax
mov ax,1000
mov ss,ax
mov sp,0000
pop [e]
下面就不写了,书上都有。
将CS:IP定位到1100:0,第一次运行这些语句,OK。运行以后1000:0~1000:000f里的数据全部变了。
问题就是第二次运行。
因为我非常确定我将CS:IP重置到1100:0,并且我用e命令重新改写1000:0~1000:000f的数据,改成和之前一样。只是AX,SS,DS这些寄存器没有重置,还是第一次运行后的数据。
就出问题了,第二次运行以后,2000:0~f不知道是啥数据,反正不是之前1000:0~1000:000f的。
请问为什么会出现这个情况呢,我起码验证了不下三次。 |