当前位置: 代码迷 >> 汇编语言 >> 王爽的书中一个实验 执行完pop后sp变小 高手解答啊解决办法
  详细解决方案

王爽的书中一个实验 执行完pop后sp变小 高手解答啊解决办法

热度:5291   发布时间:2013-02-26 00:00:00.0
王爽的书中一个实验 执行完pop后sp变小 高手解答啊
assume cs:codeseg
codeseg segment
  mov ax,2000H
  mov ss,ax
  mov sp,0
  mov sp,4
  pop ax
  pop bx
  push ax
  push bx
  pop ax
  pop bx
  mov ax,4c00H
  int 21h
codeseg ends
 end
  执行完pop ax后sp变为0002 下一条指令为 int 3 求解啊

------解决方案--------------------------------------------------------
是因为你没有设置堆栈段吧,在开头处.
------解决方案--------------------------------------------------------
王爽汇编语言中似乎没有你说的这一段代码。但是看你的代段,本身如果执行也没有什么错误。之所以会出现错误,我推算是你的SS段2000也就是你的堆栈段和代码段CS有重叠,或者你用debug,本身它自己也要把一部份数据写入栈中,也有可能会修改掉程序本来内容。你如果想看到正确运行。不凡把2000换成1000看看。或是楼上大侠说的说那样,专门设置一个代码段空间。
  相关解决方案