读书人

菜鸟有关问题。请各位大大帮帮忙

发布时间: 2012-02-08 19:52:21 作者: rapoo

初学者问题。请各位大大帮帮忙。
请教高手

为什么下面这段代码在虚拟8086模式下会出错?
我用debug -t 单步执行到 pop ax 时,就出错了。
mov ax,2000h;
mov ss,ax
mov sp,0
add sp,4
pop ax
pop bx

改成这样就不会,为什么?
mov ax,2000h;
mov ss,ax
mov sp,4
NOP
pop ax
pop bx


[解决办法]
mov sp,0
add sp,4

try to -〉

mov sp,16
[解决办法]
我个人猜想:SP为0时会触发异常,这也是为什么程序的堆栈操作时时SP向低端扩展,以及在CPU保护模式下堆栈段属性ED=1(向低端扩展)的原因了,可能是想起到监控堆栈溢出的异常吧。

读书人网 >汇编语言

热点推荐