当前位置: 代码迷 >> 汇编语言 >> 菜鸟有关问题。请各位大大帮帮忙
  详细解决方案

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

热度:5049   发布时间:2013-02-26 00:00:00.0
初学者问题。请各位大大帮帮忙。
请教高手

为什么下面这段代码在虚拟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(向低端扩展)的原因了,可能是想起到监控堆栈溢出的异常吧。
  相关解决方案