汇编语言第二版,关于SS:SP,第三章练习题最后一道:利用debug -a命令写入以下程序:

mov ax,2000
mov ss,ax
mov sp,10
mov ax,3123
push ax
mov ax,3366
push ax
再用-e命令写:-e 2000:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0使20000~2000f 置0,当利用-t命令执行完第三句时,利用-d命令显示2000:0~f,发现不全为0,求原因

答:因为在debug使用T等指令引发了中断造成的,中断过程使用当前栈空间存放cpu关键数据,所以,你的栈里就有些不是你操作的数据了。

这个问题后面会学到,不过这里也要有个印象,因为如果是在中断过程中压栈是栈越界的话,在windows下的命令窗口会强制关闭的。这个可能在你跟踪一些程序的时候会遇到,到时候有个思考方向。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答