请教,一个关于汇编debug调试过程弹出窗口提示的有关问题

请问各位高手,一个关于汇编debug调试过程弹出窗口提示的问题

  请问各位高手, 为什么下面的汇编程序,在编译连接之后,使用debug命令进行调试过程发现: 在执行push ax 指令之前,栈内存里6个连续内存单元为0,可是执行push ax 指令之后,却发现 栈内存里的内容,并不是自己所期望的进栈结果,而且无法继续执行 第二次进栈,并且弹出 一个对话框提示: 遇到无效指令,关闭, 忽略。

下面是本人 编写的简单汇编程序:

assume cs:code, ss:stack
stack segment ;数据段存储数据
  dw 0, 0, 0; 系统自动分配一段连续栈内存存储这些数据
stack ends

code segment ; 代码段存储代码
start: mov ax, stack
  mov ss, ax
  mov sp, 6
  mov ax, 1234H
  mov cx, 3
s0: push ax
  add ax, 2
  loop s0
  mov ax, 4c00H
  int 21H

code ends
end start

请问,各位, 哪里出问题了? 谢谢

------解决方案--------------------
你用debug观察ss段的数据,会看到栈的顶部有几个字节B612,看来虚拟DOS方式,栈的实际大小比sp要小一点。