1、使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空
mov ax,[0] ax=C0EA
add ax,[2] ax=C0FC
mov bx,[4] bx=30F0
add bx,[6] bx=6021
push ax sp=00FE ;修改的内存单元地址是 2200:0100内容为C0FC;
push bx sp=00FC;修改的内存单元地址是2200:00FC内容为6021;
pop ax sp=00FE;ax=6021;
pop bx sp=0100;bx=C0FC;
push [4] sp=00FE;修改的内存单元地址是 2200:0100内容为30F0 ;
push [6] sp=00FC;修改的内存单元地址是2200:00FC内容为2F31;
2、观察截图的实验过程,分析为什么2000:0~2000:f中的内容会发生改变
原因如下:
因为Debug中使用T等指令引发了中断造成的,中断过程中使用当前栈空间存放CPU关键数据,所以此时该栈里有些不是我们自己的操作数据了。以上是我网上查找到结果,总之,t命令会引起中断,从而会改变数据